【问题标题】:Traefik Web UI Server Not Found未找到 Traefik Web UI 服务器
【发布时间】:2018-11-09 13:27:38
【问题描述】:

我目前正在尝试在我的 RPi3 上的 docker 容器中设置 Traefik。截至目前,来自 Traefik 容器的日志显示验证成功并且服务器以证书响应:

pi@raspberrypi:~/docker $ sudo docker-compose logs -tf --tail="50" traefik
Attaching to traefik
traefik    | 2018-05-30T06:59:20.617977807Z legolog: 2018/05/30 06:59:20 [INFO] acme: Registering account for m5@aomosk.com
traefik    | 2018-05-30T06:59:21.369400647Z legolog: 2018/05/30 06:59:21 [INFO][*.aomosk.com] acme: Obtaining bundled SAN certificate
traefik    | 2018-05-30T06:59:21.389707565Z legolog: 2018/05/30 06:59:21 [INFO][aomosk.com] acme: Obtaining bundled SAN certificate
traefik    | 2018-05-30T06:59:22.125375140Z legolog: 2018/05/30 06:59:22 [INFO][*.aomosk.com] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz/aN3AZEq8PTXBTYi73jW-yXvHYVC-5-s9YJzcdlJA-M0
traefik    | 2018-05-30T06:59:22.125615035Z legolog: 2018/05/30 06:59:22 [INFO][aomosk.com] acme: Trying to solve DNS-01
traefik    | 2018-05-30T06:59:22.236071160Z legolog: 2018/05/30 06:59:22 [INFO][aomosk.com] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz/Le-deKqprPhYN8kj80DH1cIzcxVuk2TXZa_fKgm2is8
traefik    | 2018-05-30T06:59:22.236208295Z legolog: 2018/05/30 06:59:22 [INFO][aomosk.com] acme: Trying to solve DNS-01
traefik    | 2018-05-30T06:59:22.847749525Z legolog: 2018/05/30 06:59:22 [INFO][aomosk.com] Checking DNS record propagation using [127.0.0.11:53]
traefik    | 2018-05-30T06:59:22.908593248Z legolog: 2018/05/30 06:59:22 [INFO][aomosk.com] Checking DNS record propagation using [127.0.0.11:53]
traefik    | 2018-05-30T06:59:32.932664129Z legolog: 2018/05/30 06:59:32 [INFO][aomosk.com] The server validated our request
traefik    | 2018-05-30T06:59:32.953775211Z legolog: 2018/05/30 06:59:32 [INFO][aomosk.com] The server validated our request
traefik    | 2018-05-30T06:59:33.186498364Z legolog: 2018/05/30 06:59:33 [INFO][*.aomosk.com] acme: Validations succeeded; requesting certificates
traefik    | 2018-05-30T06:59:33.350874848Z 2018/05/30 06:59:33 dns_challenge.go:94: Error cleaning up aomosk.com: Cloudflare API Error
traefik    | 2018-05-30T06:59:33.350992816Z      Error: 81061: The record does not exist.
traefik    | 2018-05-30T06:59:33.351063284Z legolog: 2018/05/30 06:59:33 [INFO][aomosk.com] acme: Validations succeeded; requesting certificates
traefik    | 2018-05-30T07:00:53.579052808Z legolog: 2018/05/30 07:00:53 [INFO][*.aomosk.com] Server responded with a certificate.
traefik    | 2018-05-30T07:00:59.363610528Z legolog: 2018/05/30 07:00:59 [INFO][aomosk.com] Server responded with a certificate.

这是我的 docker-compose.yml 文件的副本:

version: "3.6"
services:
  traefik:
    hostname: traefik
    image: traefik:latest
    container_name: traefik
    restart: always
    domainname: aomosk.com
    networks:
      - default
      - traefik_proxy
    ports:
      - "80:80"
      - "443:443"
#      - "XXXX:8080"
    environment:
      - CLOUDFLARE_EMAIL=<my_domain_email>
      - CLOUDFLARE_API_KEY=<my_cloudflare_api_key>
    labels:
      - "traefik.enable=true"
      - "traefik.backend=traefik"
      - "traefik.frontend.rule=Host:traefik.aomosk.com"
#      - "traefik.frontend.rule=Host:${DOMAINNAME}; PathPrefixStrip: /traefik"
      - "traefik.port=8080"
      - "traefik.docker.network=traefik_proxy"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - /home/pi/docker/traefik:/etc/traefik
      - /home/pi/docker/shared:/shared
networks:
  traefik_proxy:
    external:
      name: traefik_proxy
  default:
    driver: bridge
~                  

这是我的 traefik.toml 文件:

#debug = true

logLevel = "ERROR" #DEBUG, INFO, WARN, ERROR, FATAL, PANIC
InsecureSkipVerify = true
defaultEntryPoints = ["https", "http"]

# WEB interface of Traefik - it will show web page with overview of frontend and backend configurations
[web]
address = ":8080"
  [web.auth.basic]
  usersFile = "/shared/.htpasswd"

# Force HTTPS
[entryPoints]
  [entryPoints.http]
  address = ":80"
    [entryPoints.http.redirect]
    entryPoint = "https"
  [entryPoints.https]
  address = ":443"
    [entryPoints.https.tls]

[file]
  directory = "/etc/traefik/rules/"
  watch = true

# Let's encrypt configuration
[acme]
email = "<my_domain_email>" #any email id will work
storage="/etc/traefik/acme/acme.json"
entryPoint = "https"
acmeLogging=true
onDemand = false #create certificate when container is created
[acme.dnsChallenge]
  provider = "cloudflare"
  delayBeforeCheck = 0
[[acme.domains]]
   main = "aomosk.com"
[[acme.domains]]
   main = "*.aomosk.com"

# Connection to docker host system (docker.sock)
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "aomosk.com"
watch = true
# This will hide all docker containers that don't have explicitly
# set label to "enable"
exposedbydefault = false
~                        

我已将我的 DNS 迁移到 Cloudflare,以便更好地使用 Traefik,并且我的外部 IP 有一条 A 记录,设置为我的域名,但是当我尝试时仍然出现找不到服务器页面并通过子域访问 web ui(当我使用任何其他方法时找不到 404 页面)。是否有一些我遗漏的东西导致 web ui 无法工作?

【问题讨论】:

    标签: docker docker-compose reverse-proxy traefik


    【解决方案1】:

    我有一个非常相似的设置和问题。我通过注释掉我的 traefik.toml 文件中的日志记录设置来解决它。

    logLevel = "DEBUG"
    [traefikLog]
      filePath = "/logs/traefik.log"
    [accessLog]
      filePath = "/logs/access.log"
    

    如果我把这些留在里面,我会得到 404 错误,如果我把它们注释掉,它会起作用。不知道是不是bug?

    #logLevel = "DEBUG"
    #[traefikLog]
    #  filePath = "/logs/traefik.log"
    #[accessLog]
    #  filePath = "/logs/access.log"
    

    【讨论】:

      【解决方案2】:

      我的问题有点不同。我在我的 AWS 服务器上设置了 traefik,起初,它在为 HTTP 配置时工作。但是当我为 HTTPS 配置它时它停止工作。我收到与此类似的“404 backend not found”错误

      reverse-proxy_1  | 202.164.37.34 - - [10/Aug/2018:10:39:17 +0000] "GET /api/providers HTTP/1.1" 302 5 "http://<traefik-subdomain>.<hostname>/dashboard/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36" 1091 "entrypoint redirect for frontend-Host-########-0" "/api/providers" 0ms
      reverse-proxy_1  | 202.164.37.34 - - [10/Aug/2018:10:39:17 +0000] "OPTIONS /api/providers HTTP/2.0" 404 19 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36" 1092 "backend not found" "/api/providers" 0ms
      

      我采用了与 paul-taylor 在答案中给出的相同方法,通过注释掉日志记录并且它起作用了。这很不幸,因为日志记录本来可以帮助调试任何问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-01-09
        • 1970-01-01
        • 2018-05-19
        • 2016-03-17
        • 1970-01-01
        • 2017-08-02
        • 2019-01-04
        相关资源
        最近更新 更多