我正在docker swarm环境中部署portainer和traefik。我可以使用域<canvas id="canvas" width="500" height="500"></canvas>
来访问traefik仪表板。我也想代理portainer容器,但是当我按下traefik.example.com
时,出现404错误。 traefik中的日志未显示有关击中该URL的任何信息
portainer.example.com
但是,当我使用端口号9000公开portainer并点击proxy_traefik.0.f5zxe8dngv29@dvc2 | time="2020-05-22T13:45:40Z" level=debug msg="allLabelsmap[:map[traefik.frontend.rule:Host(`traefik.shmmir.ml`) traefik.port:8080]]"
proxy_traefik.0.f5zxe8dngv29@dvc2 | time="2020-05-22T13:45:40Z" level=debug msg="originLabelsmap[com.docker.stack.image:traefik:v1.7.16 com.docker.stack.namespace:proxy traefik.frontend.rule:Host(`traefik.shmmir.ml`) traefik.port:8080]"
proxy_traefik.0.f5zxe8dngv29@dvc2 | time="2020-05-22T13:45:40Z" level=debug msg="allLabelsmap[:map[traefik.frontend.rule:Host(`traefik.shmmir.ml`) traefik.port:8080]]"
proxy_traefik.0.f5zxe8dngv29@dvc2 | time="2020-05-22T13:45:40Z" level=debug msg="originLabelsmap[com.docker.stack.image:portainer/portainer com.docker.stack.namespace:portainer traefik.enable:true traefik.http.routers.portainer.entrypoints:http traefik.http.routers.portainer.rule:Host(`portainer.shmmir.ml`) traefik.http.routers.portainer.service:portainer traefik.http.services.portainer.loadbalancer.server.port:9000]"
proxy_traefik.0.f5zxe8dngv29@dvc2 | time="2020-05-22T13:45:40Z" level=debug msg="allLabelsmap[:map[traefik.enable:true traefik.http.routers.portainer.entrypoints:http traefik.http.routers.portainer.rule:Host(`portainer.shmmir.ml`) traefik.http.routers.portainer.service:portainer] http.services.portainer.loadbalancer.server:map[traefik.port:9000]]"
proxy_traefik.0.f5zxe8dngv29@dvc2 | time="2020-05-22T13:45:40Z" level=debug msg="Backend backend-portainer-web-http-services-portainer-loadbalancer-server: no load-balancer defined, fallback to 'wrr' method"
proxy_traefik.0.f5zxe8dngv29@dvc2 | time="2020-05-22T13:45:40Z" level=debug msg="Backend backend-proxy-traefik: no load-balancer defined, fallback to 'wrr' method"
proxy_traefik.0.f5zxe8dngv29@dvc2 | time="2020-05-22T13:45:40Z" level=debug msg="Configuration received from provider docker: {\"backends\":{\"backend-portainer-web-http-services-portainer-loadbalancer-server\":{\"servers\":{\"server-portainer-web-1-d30efeb58bae18c84b91c7662dd19a7a\":{\"url\":\"http://10.0.98.159:9000\",\"weight\":1}},\"loadBalancer\":{\"method\":\"wrr\"}},\"backend-proxy-traefik\":{\"servers\":{\"server-proxy-traefik-f5zxe8dngv29a259b42l1tu78-e19913f7535b25062e55b9f66b4c375b\":{\"url\":\"http://10.0.98.4:8080\",\"weight\":1},\"server-proxy-traefik-rm54k6hi3dbmzfl7udi83xhej-cb81f0e3dbaa25243ab90850c80dc1a5\":{\"url\":\"http://10.0.98.3:8080\",\"weight\":1}},\"loadBalancer\":{\"method\":\"wrr\"}}},\"frontends\":{\"frontend-Host-traefik-shmmir-ml-0\":{\"entryPoints\":[\"http\",\"https\"],\"backend\":\"backend-proxy-traefik\",\"routes\":{\"route-frontend-Host-traefik-shmmir-ml-0\":{\"rule\":\"Host(`traefik.shmmir.ml`)\"}},\"passHostHeader\":true,\"priority\":0,\"basicAuth\":null},\"frontend-http-services-portainer-loadbalancer-server-portainer-web-http-services-portainer-loadbalancer-server\":{\"entryPoints\":[\"http\",\"https\"],\"backend\":\"backend-portainer-web-http-services-portainer-loadbalancer-server\",\"routes\":{\"route-frontend-http-services-portainer-loadbalancer-server-portainer-web-http-services-portainer-loadbalancer-server\":{\"rule\":\"Host:portainer-web.traefik\"}},\"passHostHeader\":true,\"priority\":0,\"basicAuth\":null}}}"
proxy_traefik.0.f5zxe8dngv29@dvc2 | time="2020-05-22T13:45:40Z" level=info msg="Skipping same configuration for provider docker"
时,我可以得到它的UI。因此,这意味着我的规则可能无效。这是我在Portainer服务中使用的标签
example.com:9000
和traefik服务的标签
labels:
- 'traefik.enable=true'
- 'traefik.http.routers.portainer.entrypoints=http'
- 'traefik.http.routers.portainer.rule=Host(`portainer.${DOMAIN}`)'
# - 'traefik.http.routers.portainer_.entryPoints=websecure'
- 'traefik.http.routers.portainer.service=portainer'
- 'traefik.http.services.portainer.loadbalancer.server.port=9000'
我将它们放在同一网络上,
labels:
- traefik.enable=true
- traefik.port=8080
- traefik.frontend.rule=Host(`traefik.${DOMAIN}`) #traefik.${DOMAIN}
traefik service
networks:
- proxy
- traefik-consul
- traefik-docker
portainer service
PS:Traefik正在使用这张图片 networks:
- proxy
- portainer
我真的不明白。