【问题标题】:Traefik v2 and routing with pathTraefik v2 和带路径的路由
【发布时间】: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


【解决方案1】:

解决了!

添加这个:

  - "traefik.http.middlewares.nginx-prefix.stripprefix.prefixes=/ng"
  - "traefik.http.routers.nginx.middlewares=nginx-prefix"

有了这个我不能去http://example.com/ng 并让 nginx 运行

【讨论】:

    猜你喜欢
    • 2020-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多