【发布时间】:2019-11-23 02:13:12
【问题描述】:
我试过了:
version: "3.3"
services:
traefik:
image: "traefik:latest"
command:
- --api.insecure=true
- --providers.docker=true
- --providers.docker.exposedbydefault=false
- --api=true
- --api.dashboard=true
- --entrypoints.web.address=:80
- --log.filePath=/home/docker/traefik.log
- --log.level=DEBUG
ports:
- "80:80"
- "8080:8080"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
whoami:
image: "containous/whoami"
labels:
- "traefik.enable=true"
- "traefik.http.routers.whoami.rule=Host(`whoami.traefik.kb`) && Path(`/who`)"
- "traefik.http.routers.whoami.entrypoints=web"
- "traefik.http.routers.whoami.service=whoami"
- "traefik.http.services.whoami.loadbalancer.server.port=80"
nginx:
image: "nginx:alpine"
labels:
- "traefik.enable=true"
- "traefik.http.routers.nginx.rule=Host(`nginx.traefik.kb`) && Path(`/ng`)"
- "traefik.http.routers.nginx.entrypoints=web"
- "traefik.http.routers.nginx.service=nginx"
- "traefik.http.services.nginx.loadbalancer.server.port=80"
nginx2:
image: "nginx:alpine"
labels:
- "traefik.enable=true"
- "traefik.http.routers.nginx2.rule=Host(`nginx2.traefik.kb`)"
- "traefik.http.routers.nginx2.entrypoints=web"
- "traefik.http.routers.nginx2.service=nginx2"
- "traefik.http.services.nginx2.loadbalancer.server.port=80"
我在 docker swarm 中使用这个堆栈。我的问题是当我尝试访问 nginx.traefik.kb/ng 时,我从 nginx 得到 404。使用 whoami 图像和网址 whoami.traefik.kb/who 我没有任何问题,而 nginx2.traefik.kb 也没有......
我只有这个配置文件,没有traefik.yml左右。
有什么想法吗??谢谢!!
【问题讨论】:
-
您还需要在该路由上放置一个带前缀中间件,因为 traefik 不会自动为您执行此操作。 docs.traefik.io/middlewares/stripprefix
-
你帮助我更好地理解前缀。谢谢
标签: docker nginx docker-swarm traefik