
If you've ever set up ingress in Docker Swarm, you've probably danced the old dance: Nginx or Traefik? Both are proven tools, battle-tested and popular, but they come with pros and cons that matter depending on your needs. Then there's Millau ingress-proxy and load balancer - a fresh take built specifically for Docker Swarm in 2025.
If you've touched DevOps at all, you've touched Nginx. Maybe to reverse-proxy a Node.js app. Maybe to serve static files. Maybe to fight with PHP at 2 AM. It's rock-solid, fast, and gives you control down to the byte.
Fast and stable: handles high loads with low overhead;
Fine-grained: rewrite headers, tweak timeouts, shape traffic precisely;
Secure: supports mTLS, HSTS, and custom ciphers;
Modular: for sticky sessions, advanced balancing, and more.
Static configs: changes mean rebuilds, reloads, and templating;
No built-in service discovery: especially painful with Docker Swarm;
Learning curve: powerful, but verbose and brittle.
Traefik feels like the opposite of Nginx. It's dynamic, label-driven, Kubernetes-friendly. It thrives in DevOps and microservices β and it shows.
Native service discovery: watches Docker and Kubernetes;
Automatic TLS: Let's Encrypt, no hassle;
Middleware system: rate limiting, authentication, headers, and more;
Built-in observability: Prometheus and dashboard.
Complex at scale: routing logic and middleware can get messy;
Surprising behavior: failover isn't always intuitive;
No multi-service load balancing: routes across defined service, no failover.
Millau isn't here to replace the giants. Instead, it fills a very specific niche for Docker users who want:
π§ Auto-discovery: listens to Docker events, no templates or reloads;
π·οΈ Label-based config: define routing for service in the service;
βοΈ Load balancing: spreads traffic across replicas and services;
π Failover & retries: flaky services get dropped, retries happen instantly;
π Observability: Prometheus metrics, Grafana dashboard included;
π Security: TLS and mTLS baked in;
π Zero downtime updates: routes adjust live, no redeploys;
π§ Host & path matching: with built-in fallback logic.
If you're still one of us keeping Swarm alive - maybe Millau is worth a look.
millau.net for docs π github.com/codelev/millau for stars β