繁体   English   中英

Traefik 和 Deluge 返回 No such Resource

[英]Traefik and Deluge returns No such Resource

我刚开始使用 Traefik 并尝试将 Deluge(torrent) docker 容器连接到也在容器中运行的 traefik。 问题是当我试图通过somename.ddns.net/deluge到达 deluge web ui 时,我收到错误 404 No such Resource。 没有这样的子资源。 到目前为止,我只能通过localip:8113/deluge直接访问它,或者如果我将 traefik 路由器设置为像somename.ddns.net/这样的根路径,但我想将其设置为 /deluge。 低于我目前的配置。 我看到一些 nginx 用户有类似的问题,但他们以某种方式解决了,所以应该是在 traefik 中修复的一种方法。

traefik docker-compose.yml

version: "3"
services:
  traefik:
    networks:
      - traefik
    image: traefik
    container_name: traefik
    restart: unless-stopped
    ports:
      - 8085:80
      - 8086:443
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./data:/my_data
    environment:
      - TRAEFIK_API=true
      - TRAEFIK_PROVIDERS_DOCKER=true
      - TRAEFIK_PROVIDERS_DOCKER_EXPOSEDBYDEFAULT=false
      - TRAEFIK_ENTRYPOINTS_HTTP_ADDRESS=:80
      - TRAEFIK_LOG=true
      - TRAEFIK_LOG_LEVEL=DEBUG
      - TRAEFIK_LOG_FILEPATH=/my_data/error.log
      - TRAEFIK_ACCESSLOG=true
      - TRAEFIK_ACCESSLOG_FILEPATH=/my_data/access.log
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.traefik-http.rule=Host(`somename.ddns.net`)"
      - "traefik.http.routers.traefik-http.service=api@internal"
      - "traefik.http.routers.traefik-http.entrypoints=http"
networks:
  traefik:
    external: true

洪水 docker-compose.ym

version: "3"
networks:
  traefik:
    external: true
services:
  deluge:
    image: linuxserver/deluge
    container_name: new_deluge
    restart: unless-stopped
    ports:
      - 8113:8112
    environment:
      - PUID=1000
      - PGID=1000
      - DELUGE-LOGLEVEL=error
    volumes:
      - /home/ubuntu/.config/new_deluge:/config
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.deluge.rule=Host(`somename.ddns.net`) && Path(`/deluge`)"
      - "traefik.http.routers.deluge.middlewares=deluge-headers"
      - "traefik.http.middlewares.deluge-headers.headers.customrequestheaders.X-Deluge-Base=/deluge"
      - "traefik.http.middlewares.deluge-headers.headers.customrequestheaders.X-Frame-Options=SAMEORIGIN"
      - "traefik.docker.network=traefik"
    networks:
      - default
      - traefik

先感谢您

所以我最终找到了如何让它与子目录一起工作,虽然它有点棘手,我将在下面解释原因。 我在 deluge docker-compose 中的标签现在看起来如此:

"traefik.enable=true"                                                                                                                                                    
"traefik.http.routers.deluge.rule=Host(`somehost.com`) && Path(`/deluge`) || PathPrefix(`/deluge`)"                                                                 
"traefik.http.services.deluge.loadbalancer.server.port=8112"                                                                                                             
"traefik.http.routers.deluge.entrypoints=https,http"                                                                                                                     
"traefik.http.routers.deluge.middlewares=deluge-stripprefix"                                                                                                             
"traefik.http.middlewares.deluge-stripprefix.stripprefix.prefixes=/deluge"                                                                                               
"traefik.http.routers.deluge.tls=true"                                                                                                                                   
"traefik.docker.network=traefik"          

您还需要将web.conf中的base密钥更新为您所需的子目录base: "/deluge"之后,您可以在https://somehost.com/deluge上访问您的 deluge UI,但您不能使用它在本地(例如 192.168.1.25),因为 all.css/.js 文件现在将被请求到 192.168.1.25/deluge/style.ZC7A62 8CBA22E28EB17B5F5C6AE2A266AZ ,这是不正确的。 traefik 在所有 somehost.com/deluge 请求上所做的只是剥离 /deluge 部分并将请求转移到 192.168.1.25 路径,没有子目录。 对我来说这很好,我正在使用 SSL 来保护请求,因此可以在我的网络之外使用它,就像在家里使用它一样。

但是,如果您知道如何使两个(全局、本地)网址同时工作,如果您将答案放在这里,我将不胜感激。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM