Reverse proxy che si configura da solo
Configurare manualmente Nginx o HAProxy in ambienti dinamici — container che nascono e muoiono, servizi che cambiano porta o host — è oneroso. Traefik, lanciato nel 2015 da Emile Vauge (azienda Containous, poi Traefik Labs), risolve con un approccio alternativo: service discovery integrata che legge configurazione da providers esterni.
La versione 2.0 del 16 settembre 2019 è una riscrittura major. Licenza MIT.
Providers
Traefik si connette a fonti di configurazione dinamiche:
- Docker — labels sui container definiscono routing
- Kubernetes — via Ingress o Traefik-specific IngressRoute CRD
- Consul Catalog, etcd, ZooKeeper — service discovery
- File provider — config YAML/TOML statica
- AWS ECS, Nomad, Kubernetes Gateway API
Quando un container parte con label traefik.http.routers.api.rule=Host('api.example.com'), Traefik automaticamente lo espone con quel host, senza ricaricare manualmente.
Middlewares
Novità chiave della 2.0: middlewares componibili. Un middleware è un livello di trasformazione applicato a richieste:
- Auth — BasicAuth, DigestAuth, ForwardAuth
- Rate limit, circuit breaker, retries
- Compress (gzip), buffering
- Headers (CORS, security headers, rimozione PII)
- IPWhiteList, IPAllowList
- StripPrefix, AddPrefix, ReplacePath, Redirect
- Catene di middleware definite e riusate
TCP e UDP routing
La 2.0 aggiunge routing per TCP (oltre HTTP) e UDP, con SNI routing per TLS. Abilita Traefik come frontend non solo di applicazioni web ma anche di database, MQTT, DNS, QUIC.
Let’s Encrypt automatico
Traefik è tra i primi proxy a integrare nativamente ACME/Let’s Encrypt. Configurazione minima:
certificatesResolvers:
myresolver:
acme:
email: admin@example.com
storage: acme.json
httpChallenge:
entryPoint: web
Traefik ottiene, rinnova, distribuisce certificati senza intervento. Supporta HTTP-01, DNS-01, TLS-ALPN-01.
Dashboard
Un dashboard web built-in mostra routers, servizi, middlewares attivi — utile per debug. Metriche Prometheus esposte per monitoring.
Confronto
- Nginx — più performante, ma configurazione statica o via Nginx Plus / OpenResty
- HAProxy — load balancer fortissimo su TCP/HTTP, configurazione statica
- Envoy — data plane potente, meno user-friendly
- Caddy — simile filosofia (HTTPS auto), meno service discovery
- Traefik — best quando servono auto-configurazione e Kubernetes/Docker-native
Nel contesto italiano
Traefik è adottato in Italia da:
- Aziende con cluster K8s self-hosted
- SaaS che vogliono multi-tenant con subdomain routing dinamico
- Provider hosting come opzione per i clienti Docker
Riferimenti: Traefik 2.0 (16 settembre 2019). Containous (poi Traefik Labs), Emile Vauge. Licenza MIT. Providers Docker, Kubernetes, Consul. Middlewares componibili. Let’s Encrypt/ACME integration.
