Kubernetes部署qBittorrent时WebUI仅根路径可访问子路径返回404问题
根因说明
- qBittorrent WebUI默认仅支持根路径访问,未配置基础上下文路径的情况下,页面加载的静态资源、接口调用都会直接请求根路径
/,哪怕Ingress把/torrent转发到后端根路径,资源请求还是会走/xxx.css而非/torrent/xxx.css,自然返回404 - 之前添加的
rewrite-target注解不符合Nginx Ingress的捕获规则,未实际生效
解决步骤
第一步:修改Deployment配置,添加基础路径环境变量
linuxserver的qBittorrent镜像支持通过WEBUI_URL环境变量直接指定WebUI的基础路径,无需进入页面手动改配置,调整Deployment的containers部分如下:
containers: - name: linuxserver image: linuxserver/qbittorrent:amd64-latest env: # 配置WebUI基础路径为/torrent,和Ingress路径保持一致 - name: WEBUI_URL value: "/torrent"
重新apply该Deployment让配置生效。
第二步:修改Ingress配置(可选,兼容不带尾斜杠的访问)
如果你希望/torrent和/torrent/都能正常访问,修改Ingress配置如下:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: torrent-ingress annotations: kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/rewrite-target: /$1 spec: rules: - http: paths: - path: /torrent(/|$)(.*) pathType: Prefix backend: service: name: torrent-service port: number: 8080
重新apply该Ingress配置即可。
验证
等待Pod重启完成后,直接访问localhost:nginx_port/torrent即可正常加载WebUI使用,无需额外修改Host header validation配置。
内容的提问来源于stack exchange,提问作者Paul Schuldesz
相关产品推荐
相关产品推荐

