Traefik 失败的 https 重定向
Traefik failing https redirection
我有一个 docker-compose 使用 traefik 1.7 作为我网站的代理。我的网站服务器是Next.js。在我的其他应用程序上使用相同的配置时,我无法执行 http 到 https 重定向。
这是我的 docker-compose.yml :
version: '2'
services:
proxy:
image: traefik:1.7
restart: always
command: |-
--logLevel=DEBUG
--web
--entrypoints='Name:http Address::80 Redirect.EntryPoint:https Redirect.Permanent:true'
#--entrypoints='Name:http Address::80'
--entrypoints='Name:https Address::443 TLS'
--docker
--acme
--acme.entrypoint=https
--acme.email=test@mail.com
--acme.storage=/etc/traefik/acme.json
--acme.ondemand=false
--acme.onhostrule=true
--acme.httpChallenge.entryPoint=http
networks:
- default
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./traefik:/etc/traefik/
website-preprod:
image: registry/taggedimage
restart: always
labels:
- "traefik.backend=my-website"
- "traefik.frontend.rule=Host:domainname.com"
- "traefik.docker.network=root_default"
- "traefik.frontend.entryPoints=http,https"
- "traefik.port=3000"
environment:
- HTTPS_CERT=server/certificates/dev.crt
- HTTPS_KEY=server/certificates/dev.key
- HTTP2=false
- API_ENDPOINT=https://api.domainname.com/api
- HTTPS=true
depends_on:
- proxy
networks:
- default
- inner
networks:
inner:
driver: bridge
internal: true
Https 有效,但从 http 到 https 的重定向无效。
Traefik 日志似乎没问题,只是它根本不重定向。
评论 #--entrypoints='Name:http Address::80'
似乎是问题所在。由于 docker-compose 被翻译成命令行,这一行打破了重定向的前一行。
我有一个 docker-compose 使用 traefik 1.7 作为我网站的代理。我的网站服务器是Next.js。在我的其他应用程序上使用相同的配置时,我无法执行 http 到 https 重定向。
这是我的 docker-compose.yml :
version: '2'
services:
proxy:
image: traefik:1.7
restart: always
command: |-
--logLevel=DEBUG
--web
--entrypoints='Name:http Address::80 Redirect.EntryPoint:https Redirect.Permanent:true'
#--entrypoints='Name:http Address::80'
--entrypoints='Name:https Address::443 TLS'
--docker
--acme
--acme.entrypoint=https
--acme.email=test@mail.com
--acme.storage=/etc/traefik/acme.json
--acme.ondemand=false
--acme.onhostrule=true
--acme.httpChallenge.entryPoint=http
networks:
- default
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./traefik:/etc/traefik/
website-preprod:
image: registry/taggedimage
restart: always
labels:
- "traefik.backend=my-website"
- "traefik.frontend.rule=Host:domainname.com"
- "traefik.docker.network=root_default"
- "traefik.frontend.entryPoints=http,https"
- "traefik.port=3000"
environment:
- HTTPS_CERT=server/certificates/dev.crt
- HTTPS_KEY=server/certificates/dev.key
- HTTP2=false
- API_ENDPOINT=https://api.domainname.com/api
- HTTPS=true
depends_on:
- proxy
networks:
- default
- inner
networks:
inner:
driver: bridge
internal: true
Https 有效,但从 http 到 https 的重定向无效。 Traefik 日志似乎没问题,只是它根本不重定向。
评论 #--entrypoints='Name:http Address::80'
似乎是问题所在。由于 docker-compose 被翻译成命令行,这一行打破了重定向的前一行。