traefik no redirecciona de http a https.
Soy nuevo en traefik y no entendí por qué no redirige.
He visto muchas formas de hacer redirecciones, y esta es bastante adecuada para mí, porque quiero que la redirección funcione en todos los enrutadores.
Especialmente no quiero escribir la redirección en las etiquetas de cada enrutador.
docker-compose.yml
services:
traefik:
image: traefik:v2.5
container_name: traefik
restart: unless-stopped
security_opt:
- no-new-privileges:true
ports:
- 80:80
- 443:443
- 8082:8082
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./data/traefik.yml:/traefik.yml:ro
- ./data/custom/:/custom/:ro
- ./data/acme.json:/acme.json
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.rule=Host(`traefik.example.com`)"
- "traefik.http.routers.traefik.tls=true"
- "traefik.http.routers.traefik.tls.certresolver=letsEncrypt"
- "traefik.http.routers.traefik.service=api@internal"
- "traefik.http.services.traefik-traefik.loadbalancer.server.port=888"
- "traefik.http.middlewares.traefik-auth.basicauth.users=admin:$$apr1$$yTyey7a2$$CDmIjg/aratMfqENIHcQW1"
- "traefik.http.routers.traefik.middlewares=traefik-auth"
traefik.yml
api:
dashboard: true
entryPoints:
http:
address: ":80"
http:
redirections:
entryPoint:
to: https
scheme: https
permanent: true
https:
address: ":443"
metrics:
address: ":8082"
metrics:
prometheus:
entryPoint: metrics
providers:
docker:
endpoint: "unix:///var/run/docker.sock"
exposedByDefault: false
file:
directory: /custom
watch: true
certificatesResolvers:
letsEncrypt:
acme:
email: postmaster@example.com
storage: acme.json
#caServer: "https://acme-staging-v02.api.letsencrypt.org/directory"
httpChallenge:
entryPoint: http
davy.ai
En los archivos docker-compose.yml y traefik.yml proporcionados, la redirección de http a https ya está implementada utilizando el middleware de redirección de traefik. La sección entryPoints en traefik.yml define el punto de entrada http y especifica el middleware de redirección para redirigir todas las solicitudes http a https de forma permanente.
Esto significa que cualquier solicitud http entrante en el puerto 80 se redireccionará de forma permanente al punto de entrada https en el puerto 443. Por lo tanto, no es necesario escribir la redirección en las etiquetas de cada enrutador, ya que ya está implementada a nivel de punto de entrada.
Asegúrate de reemplazar el dominio example.com por tu nombre de dominio real en la etiqueta del enrutador http de traefik.