【问题标题】:Traefik 2 configured with docker labels and cloudflare https, 404 page not foundTraefik 2 配置了 docker 标签和 cloudflare https,找不到 404 页面
【发布时间】:2020-07-27 22:55:08
【问题描述】:

我无法让 Traefik v2 仪表板(或任何其他服务)通过404 page not found。我试图避免使用traefik.yml 文件并在docker compose 文件中使用commandlabels 配置所有内容。 HTTPS 有效,但内容不显示。

这是定义 traefik 服务的 compose 文件:

version: '3.3'
services:
  traefik:
    image: traefik:v2.2.1
    command:
     - --entrypoints.web.address=:80
     - --entrypoints.websecure.address=:443
     - --providers.docker
     - --providers.docker.swarmmode=true
     - --api
     - --entrypoints.websecure.http.tls.certresolver=myresolver
     - --certificatesresolvers.myresolver.acme.dnschallenge=true
     - --certificatesresolvers.myresolver.acme.email=${CF_API_EMAIL}
     - --certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory
     - --certificatesresolvers.myresolver.acme.storage=acme.json
     - --certificatesresolvers.myresolver.acme.dnschallenge.provider=cloudflare
    labels:
      traefik.http.routers.traefik.tls.certresolver: myresolver
      traefik.http.services.traefik.loadbalancer.server.port: '8080'
      traefik.http.routers.http-catchall.middlewares: redirect-to-https
      traefik.http.middlewares.authtraefik.basicauth.users: user://V6Btlaf2i/ju5n/
      traefik.http.routers.http-catchall.rule: hostregexp(`{host:.+}`)
      traefik.http.routers.traefik.middlewares: authtraefik
      traefik.http.routers.traefik.entrypoints: websecure
      traefik.http.routers.traefik.service: api@internal
      traefik.http.middlewares.redirect-to-https.redirectscheme.scheme: https
      traefik.http.routers.http-catchall.entrypoints: web
      traefik.http.routers.traefik.rule: Host(`traefik.example.com`)
    environment:
      CF_API_EMAIL: ${CF_API_EMAIL}
      CF_API_KEY: ${CF_API_KEY}
    ports:
     - 80:80
     - 443:443
    volumes:
     - /var/run/docker.sock:/var/run/docker.sock:ro
    networks:
     - external
    logging:
      driver: json-file
networks:
  external:
    external: true

任何建议都将不胜感激。

资源

【问题讨论】:

    标签: docker docker-compose docker-swarm traefik


    【解决方案1】:

    通过一些更改使其工作:

    • 需要指定网络,因为它是外部的:traefik.docker.network: external
    • 在 swarm 模式下,标签应位于 deploy
    • 在 Cloudflare 中,令牌应取自“我的个人资料 > API 令牌 > 全局 API 密钥”
    version: '3.3'
    services:
      traefik:
        image: traefik:v2.2.1
        command:
         - --api
         - --api.insecure=true
         - --accessLog
         - --providers.docker
         - --providers.docker.swarmmode=true
         - --providers.docker.exposedbydefault=false
         - --entrypoints.web.address=:80
         - --entrypoints.websecure.address=:443
         - --certificatesresolvers.myresolver.acme.dnschallenge=true
         - --certificatesresolvers.myresolver.acme.dnschallenge.provider=cloudflare
        environment:
          CF_API_EMAIL_FILE: /run/secrets/cf_api_email
          CF_API_KEY_FILE: /run/secrets/cf_api_key
        ports:
         - 80:80
         - 443:443
        volumes:
         - /var/run/docker.sock:/var/run/docker.sock:ro
        networks:
         - external
        logging:
          driver: json-file
        deploy:
          labels:
            traefik.http.services.traefik.loadbalancer.server.port: '8080'
            traefik.http.routers.traefik.middlewares: auth
            traefik.http.routers.traefik.entrypoints: web
            traefik.http.middlewares.auth.basicauth.users: admin:2y05.ibkghcHaj6ala4xCsgJiww1/uCFB9w.
            traefik.docker.network: external
            traefik.enable: 'true'
            traefik.http.routers.traefik.rule: Host(`traefik.example.com`)
    networks:
      external:
        external: true
    

    【讨论】:

      猜你喜欢
      • 2020-01-04
      • 1970-01-01
      • 2022-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-09
      • 1970-01-01
      • 2013-04-07
      相关资源
      最近更新 更多