Labels | Traefik
- Labels | Traefik
- Padrão das labels
traefik.<protocol>.<object-type>.<object-name>.<property>=<value>
🧱 1. Labels Gerais
traefik.enable=true|false
traefik.docker.network=<network_name>
traefik.tags=<tag>
🌐 2. Routers (traefik.http.routers)
2.1 Básicas
traefik.http.routers.<router>.rule
traefik.http.routers.<router>.entrypoints
traefik.http.routers.<router>.service
traefik.http.routers.<router>.priority
Exemplo de rule
Host(`example.com`)
Host(`example.com`,`www.example.com`)
Path(`/api`)
PathPrefix(`/v1`)
Host(`example.com`) && PathPrefix(`/api`)
2.2 TLS / HTTPS
traefik.http.routers.<router>.tls=true
traefik.http.routers.<router>.tls.certresolver
traefik.http.routers.<router>.tls.domains[0].main
traefik.http.routers.<router>.tls.domains[0].sans
Exemplo:
traefik.http.routers.app.tls.domains[0].main=example.com
traefik.http.routers.app.tls.domains[0].sans=www.example.com
2.3 Middlewares no Router
traefik.http.routers.<router>.middlewares=middleware1,middleware2
Com provider explícito:
middleware@docker
🔁 3. Services (traefik.http.services)
3.1 Load Balancer
traefik.http.services.<service>.loadbalancer.server.port
traefik.http.services.<service>.loadbalancer.passhostheader=true|false
traefik.http.services.<service>.loadbalancer.healthcheck.path
traefik.http.services.<service>.loadbalancer.healthcheck.interval
traefik.http.services.<service>.loadbalancer.healthcheck.timeout
3.2 Sticky Sessions
traefik.http.services.<service>.loadbalancer.sticky.cookie=true
traefik.http.services.<service>.loadbalancer.sticky.cookie.name
traefik.http.services.<service>.loadbalancer.sticky.cookie.secure
traefik.http.services.<service>.loadbalancer.sticky.cookie.httponly
🧩 4. Middlewares (traefik.http.middlewares)
4.1 Redirect HTTP → HTTPS
traefik.http.middlewares.<mw>.redirectscheme.scheme=https
traefik.http.middlewares.<mw>.redirectscheme.permanent=true
4.2 Basic Auth
traefik.http.middlewares.<mw>.basicauth.users=user:hash
traefik.http.middlewares.<mw>.basicauth.realm
traefik.http.middlewares.<mw>.basicauth.removeheader=true
4.3 Headers (SEGURANÇA)
traefik.http.middlewares.<mw>.headers.sslredirect=true
traefik.http.middlewares.<mw>.headers.stsseconds=31536000
traefik.http.middlewares.<mw>.headers.stsincludesubdomains=true
traefik.http.middlewares.<mw>.headers.stspreload=true
traefik.http.middlewares.<mw>.headers.contenttypenosniff=true
traefik.http.middlewares.<mw>.headers.browserxssfilter=true
traefik.http.middlewares.<mw>.headers.framedeny=true
traefik.http.middlewares.<mw>.headers.referrerpolicy=no-referrer
4.4 Rate Limit
traefik.http.middlewares.<mw>.ratelimit.average
traefik.http.middlewares.<mw>.ratelimit.burst
traefik.http.middlewares.<mw>.ratelimit.period
4.5 IP Whitelist
traefik.http.middlewares.<mw>.ipwhitelist.sourcerange=192.168.0.0/24
4.6 Compress (Gzip/Brotli)
traefik.http.middlewares.<mw>.compress=true
4.7 Retry
traefik.http.middlewares.<mw>.retry.attempts
traefik.http.middlewares.<mw>.retry.initialinterval
4.8 Replace Path
traefik.http.middlewares.<mw>.replacepath.path=/new
traefik.http.middlewares.<mw>.replacepathregex.regex=^/api/(.*)
traefik.http.middlewares.<mw>.replacepathregex.replacement=/$1
4.9 Strip Prefix
traefik.http.middlewares.<mw>.stripprefix.prefixes=/api
traefik.http.middlewares.<mw>.stripprefix.forceSlash=true
4.10 Circuit Breaker
traefik.http.middlewares.<mw>.circuitbreaker.expression=LatencyAtQuantileMS(50.0) > 100
🔐 5. TLS Avançado
5.1 TLS Options
traefik.http.routers.<router>.tls.options=<tls-option>@docker
traefik.tls.options.<name>.minversion=VersionTLS12
traefik.tls.options.<name>.cipherSuites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
📊 6. Observabilidade
6.1 Access Logs
traefik.http.middlewares.<mw>.accesslog=true
6.2 Metrics (Prometheus)
traefik.metrics.prometheus=true
🧠 7. Dashboard (api@internal)
traefik.http.routers.traefik.service=api@internal
🧪 8. TCP Routers (avançado)
traefik.tcp.routers.<router>.rule=HostSNI(`example.com`)
traefik.tcp.routers.<router>.entrypoints
traefik.tcp.routers.<router>.tls=true
🧾 9. UDP Routers
traefik.udp.routers.<router>.entrypoints
traefik.udp.services.<service>.loadbalancer.server.port
✅ 10. Labels MÍNIMAS para Produção (resumo)
traefik.enable=true
traefik.http.routers.app.rule=Host(`example.com`)
traefik.http.routers.app.entrypoints=websecure
traefik.http.routers.app.tls=true
traefik.http.routers.app.tls.certresolver=le
traefik.http.services.app.loadbalancer.server.port=80