Ошибка «Страница Traefik 404 не найдена» при доступе к информационной панели с настройкой «только https»
Некоторое время я пытаюсь настроить Traefik на своем Oracle Cloud VPS. Сервер находится за Cloudflare, поэтому я настроил у них сертификат происхождения. Кажется, это работает, потому что, когда я хочу получить доступ к панели мониторинга, доставляется настроенный сертификат. К сожалению, Traefik, похоже, неправильно направляется на панель управления, поскольку я всегда получаю сообщение404
назад, когда я получаю доступ к настроенному пути:https://proxy.example.com/dashboard/
.
Мойdocker-compose.yml
выглядит так:
version: '3'
networks:
proxy:
name: proxy
services:
proxy:
image: traefik:2.8
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./traefik.yml:/traefik.yml
- ./tls.yml:/tls.yml
- ./cloudflare.crt:/cloudflare.crt
- ./cloudflare.key:/cloudflare.key
ports:
- target: 80
published: 80
mode: host
- target: 443
published: 443
mode: host
labels:
- "traefik.enable=true"
- "traefik.http.routers.dashboard-https.rule=Host(`proxy.example.com`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))"
- "traefik.http.routers.dashboard-https.entrypoints=https"
- "traefik.http.routers.dashboard-https.service=api@internal"
networks:
- proxy
The traefik.yml
выглядит как:
log:
level: DEBUG
api:
insecure: false
dashboard: true
entryPoints:
https:
address: ":443"
providers:
docker:
network: proxy
endpoint: "unix:///var/run/docker.sock"
exposedByDefault: false
file:
filename: "tls.yml"
watch: true
Дляtls.yml
Я разместил следующий контент:
tls:
certificates:
- certFile: "/cloudflare.crt"
keyFile: "/cloudflare.key"
stores:
default:
defaultCertificate:
certFile: "/cloudflare.crt"
keyFile: "/cloudflare.key"
Папка имеет следующее содержимое:
cloudflare.crt cloudflare.key docker-compose.yml tls.yml traefik.yml
До сих пор я пробовал много вещей:
- Отключил iptables, приняв все на
INPUT
,OUTPUT
иFORWARD
. - Запустите другой сервис в Docker и откройте его http-интерфейс напрямую без Traefik, и это сработало.
- Запустите сервер непосредственно на хост-системе (без Docker) и проверьте, доступен ли http-интерфейс, что тоже сработало.
Я почти уверен, что с моей конфигурацией Traefik что-то не так. Вы видите какие-либо ошибки, которые я сделал?