1
0 Comments

Nginx vs Traefik vs Millau

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.

Nginx, the classic workhorse

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.

Pros

  • 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.

Cons

  • 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, the cloud-native

Traefik feels like the opposite of Nginx. It's dynamic, label-driven, Kubernetes-friendly. It thrives in DevOps and microservices β€” and it shows.

Pros

  • 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.

Cons

  • 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.

Where does Millau fit in?

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 ⭐

posted toAvatar for product Millau
Millau