У меня проблема в том, что я могу маршрутизировать трафик HTTPS, но я не могу глобально перенаправить трафик HTTP на HTTPS. В моем случае мне нужен только HTTPS-трафик, поэтому я хочу перенаправить весь входящий трафик.
В настоящее время я получаю сообщение об ошибке 404, когда пытаюсь обслуживать свои URL-адреса по HTTP. Я уже включил журналы отладки в Treafik, но я не вижу никаких проблем или нестандартных вещей в журналах.
Кроме того, я увидел довольно похожую тему здесь, в Stackoverflow, но мы обнаружили, что его ошибка не совпадает с моей: Как перенаправить http в https с помощью ярлыков Traefik 2.0 и Docker Compose?
Следующая настройка основана на записи в блоге здесь: https://blog.containo.us/traefik-2-0-docker-101-fc2893944b9d
Моя настройка
Я настроил Traefik в моем рое следующим образом:
global:
checkNewVersion: false
sendAnonymousUsage: false
api:
dashboard: true
entryPoints:
web:
address: :80
websecure:
address: :443
providers:
providersThrottleDuration: 2s
docker:
watch: true
endpoint: unix:///var/run/docker.sock
swarmMode: true
swarmModeRefreshSeconds: 15s
exposedByDefault: false
network: webgateway
log:
level: DEBUG
accessLog: {}
certificatesResolvers:
default:
acme:
email: {email}
storage: /etc/traefik/acme/acme.json
httpChallenge:
entryPoint: web
И запустил Traefik со следующим файлом docker-compose
version: '3'
services:
proxy:
image: traefik:latest
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /data/docker_data/traefik/traefik-2.yml:/etc/traefik/traefik.yml
- /data/docker_data/traefik/acme-2.json:/etc/traefik/acme/acme.json
labels:
# redirect
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
- "traefik.http.routers.redirs.rule=hostregexp(`{host:.+}`)"
- "traefik.http.routers.redirs.entrypoints=web"
- "traefik.http.routers.redirs.middlewares=redirect-to-https"
Мои сервисы настроены со следующими метками:
traefik.http.routers.myapp.rule=Host(`myapp.ch`)
traefik.http.routers.myapp.service=myapp
traefik.http.routers.myapp.entrypoints=websecure
# I don't think that the following one is required here...
# traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
traefik.http.routers.myapp.tls.certresolver=default
traefik.http.services.myapp.loadbalancer.server.port=3000
traefik.http.routers.myapp.tls=true
traefik.enable=true
Есть идеи, почемуэто не работает?