【问题标题】:No response from traefik once HTTPS is enabled启用 HTTPS 后,traefik 没有响应
【发布时间】:2020-03-21 23:23:00
【问题描述】:

我正在尝试将 traefik 设置为我的 docker 容器的反向代理,但我无法将容器设置为使用 HTTPS。

我从 traefik user guide 复制了 docker-compose 并稍作修改(见下文)。

我的容器工作正常,如果我从 whoami 服务中注释掉最后两个标签,我可以通过 test.example.com:80 访问该服务。但是,如果我添加这两个标签,我将不再从我的 HTTP 请求中获得任何响应 https://test.example.com(:443)

我可以很好地检索证书,并且它按预期存储在 acme.json 中。

我已启用调试日志记录,但没有记录任何重要的内容。我该如何调试呢?

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

【问题讨论】:

    标签: docker docker-compose traefik


    【解决方案1】:

    这是您的网络配置的问题,因为以下示例运行良好:

    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"
    

    【讨论】:

    • 我得到相同的结果(无响应)删除网络设置。会不会和我的docker主机阻塞端口有关?
    • 我会接受这个答案,因为我的问题似乎出在其他地方。
    • 只是一个更新。这是 traefik 或 docker 的问题,但与配置或网络无关。还没解决。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 2017-07-12
    • 2016-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多