Traefik v2 和带路径的路由
Traefik v2 and routing with path
我试过这个:
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 群中使用这个堆栈。我的问题是当我尝试到达 nginx.traefik.kb/ng 时,我从 nginx 得到了 404。使用 whoami 图像和 url whoami.traefik.kb/who 我没有任何问题 nginx2.traefik.kb 都不是...
我只有这个配置文件,没有traefik.yml左右
有什么想法吗??谢谢!!
已解决!
添加这个:
- "traefik.http.middlewares.nginx-prefix.stripprefix.prefixes=/ng"
- "traefik.http.routers.nginx.middlewares=nginx-prefix"
有了这个我就不能去 http://example.com/ng 获取 nginx 运行
我试过这个:
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 群中使用这个堆栈。我的问题是当我尝试到达 nginx.traefik.kb/ng 时,我从 nginx 得到了 404。使用 whoami 图像和 url whoami.traefik.kb/who 我没有任何问题 nginx2.traefik.kb 都不是...
我只有这个配置文件,没有traefik.yml左右
有什么想法吗??谢谢!!
已解决!
添加这个:
- "traefik.http.middlewares.nginx-prefix.stripprefix.prefixes=/ng"
- "traefik.http.routers.nginx.middlewares=nginx-prefix"
有了这个我就不能去 http://example.com/ng 获取 nginx 运行