【发布时间】:2022-10-25 03:38:19
【问题描述】:
我正在尝试使用 Traefik 2.6.3 在 docker 中为 xTeVe 运行反向代理,但是我无法使用一些中间件。
默认情况下 xTeVe 侦听端口 34400 以连接到 DVR IP:
IP: 192.168.96.2:34400
它还有一个用于 Web UI 的 /web 路径:
web Interface: http://192.168.96.2:34400/web/
如果我只使用"traefik.http.routers.xteve.rule=Host(`MY_HOSTNAME`)",那么实际上我可以通过使用https://MY_HOSTNAME 的webui 轻松访问它,然后重定向到https://MY_HOSTNAME/web。
我正在尝试在另一个服务上进行反向代理,该服务实际上与/web 在其服务中具有相同的前缀,因此存在冲突。这就是为什么我想从 xTeVe 中删除 /web 并将其替换为 /xteve。
我似乎根本无法让它工作。如果我替换/xteve 我可以成功连接到服务,这相当于连接到IP不是如上所述的网络界面。所以我真的不知道为什么我无法连接到网络界面,我确实尝试了/xteve/web,但这仍然没有返回网络用户界面,只是与/xteve 相同的网页。
我尝试使用 Path 和 PathPrefix 剥离前缀、替换前缀、正则表达式替换,但仍然没有运气,请参见下面的 cmets:
labels:
- "traefik.http.routers.xteve.rule=Host(`MY_HOSTNAME`)"
- "traefik.enable=true"
- "traefik.http.routers.xteve.tls=true"
- "traefik.http.routers.xteve.entrypoints=websecure"
- "traefik.http.services.xteve.loadbalancer.server.port=34400"
# - "traefik.http.middlewares.xteve-stripprefix.stripprefix.prefixes=/web"
# - "traefik.http.middlewares.xteve-addprefix.addprefix.prefix=/xteve"
# - "traefik.http.routers.xteve.middlewares=xteve-stripprefix"
# - "traefik.http.middlewares.test-redirectregex.redirectregex.regex=^http://192.168.96.2:34400/web/"
# - "traefik.http.middlewares.test-redirectregex.redirectregex.replacement=https://MY_HOSTNAME/xteve"
# - "traefik.http.middlewares.test-replacepathregex.replacepathregex.regex=^/web/(.*)"
# - "traefik.http.middlewares.test-replacepathregex.replacepathregex.replacement=/xteve/$$1"
我显然错过了一些东西,但不确定是什么并寻求帮助。文档不是很清楚,我似乎只找到适用于 Traefik v1 的东西。
如果有人可以提供帮助,我将不胜感激 - 谢谢。
编辑:
我想我真正的问题是,如何在 traefik 中将后端服务从 <IP>:<PORT>/<PATH> 更改为 <FQDN>/<NEW_PATH>。
【问题讨论】:
标签: docker docker-compose proxy reverse-proxy traefik