Нет ответа от traefik после включения HTTPS - PullRequest
0 голосов
/ 22 марта 2020

Я пытаюсь настроить traefik в качестве обратного прокси-сервера для моих docker контейнеров, но я застрял, настраивая контейнеры для использования HTTPS.

Я скопировал docker -композит из traefik руководство пользователя и его небольшие изменения (см. Ниже).

Мои контейнеры работают нормально, и если я закомментирую две последние метки из службы whoami, я смогу получить доступ к службе через test.example .com: 80. Однако, если я добавлю две метки, я больше не получу никакого ответа от моего HTTP-запроса на https://test.example.com (: 443) .

Я могу получить сертификат в порядке, и это хранится в acme. json, как и ожидалось.

Я включил ведение журнала отладки, но ничего значимого не регистрируется. Как мне go отладить это?

version: "3.3"

services:
  traefik:
    container_name: "traefik"
    image: "traefik:v2.1"
    command:
      - "--log.level=DEBUG"
      - "--api.insecure=true"
      - "--providers.docker"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.myresolver.acme.httpchallenge=true"
      - "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web"
      #- "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
      - "--certificatesresolvers.myresolver.acme.email=me@example.com"
      - "--certificatesresolvers.myresolver.acme.storage=/acme.json"
    ports:
      - "80:80"
      - "443:443"
      - "8080:8080"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
      - "/opt/docker_volumes/traefik/acme.json:/acme.json"
    networks:
      - web

  whoami:
    image: "containous/whoami"
    container_name: "simple-service"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.whoami.rule=Host(`test.example.com`)"
      - "traefik.http.routers.whoami.entrypoints=websecure"
      - "traefik.http.routers.whoami.tls.certresolver=myresolver"
    networks:
      - web

networks:
  web:
    external: true

Сеть web была создана с помощью следующего:

docker network create --driver=bridge --subnet=10.0.0.0/24 --gateway=10.0.0.1 web

1 Ответ

2 голосов
/ 22 марта 2020

это проблема с вашей сетевой конфигурацией, потому что следующий пример работает нормально:

version: "3.3"

services:
  traefik:
    container_name: "traefik"
    image: "traefik:v2.1"
    command:
      - "--log.level=INFO"
      - "--api.insecure=true"
      - "--providers.docker"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.myresolver.acme.httpchallenge=true"
      - "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web"
      - "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
      - "--certificatesresolvers.myresolver.acme.email=me@example.com"
      - "--certificatesresolvers.myresolver.acme.storage=/acme.json"
    ports:
      - "80:80"
      - "443:443"
      - "8080:8080"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
      - "/opt/docker_volumes/traefik/acme.json:/acme.json"

  whoami:
    image: "containous/whoami"
    container_name: "simple-service"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.whoami.rule=Host(`test.example.com`)"
      - "traefik.http.routers.whoami.entrypoints=websecure"
      - "traefik.http.routers.whoami.tls.certresolver=myresolver"
...