Ошибка «Страница 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 что-то не так. Вы видите какие-либо ошибки, которые я сделал?

0 ответов

Другие вопросы по тегам