docker - 无法解析 Traefik 中的 URL 出现错误 404
问题描述
我面临的问题对我来说有些了解,但我仍然想了解我的实施中的问题。
我有一个 Traefik 容器和一个服务容器。服务容器具有服务页面的某些路由。为了将 Traefik 的请求传递到服务/应用程序容器,我在容器上附加了一个标签。标签在我的应用程序中有一个路径,以便 Traefik 可以将请求重定向到后端服务,最后我的服务可以为请求提供服务。
主要问题:到目前为止一切正常,但问题是我的应用程序/服务提供了一些静态页面,这些页面位于 Traefik 无法识别的另一条路线上。这将生成错误 404。我无法找到解决此问题的方法。
例如:我有一个服务 A 为http://localhost/blog上的请求提供服务,所有进一步的请求都通过localhost/blog/*。为此,我将简单地添加带有PathPrefix( /blog
)的标签。它使一切正常,但没有加载 JS 和 CSS 文件。相同的原因是我的 css 和 js 文件是从http://localhost/js和http://localhost/css路由加载的。当然,这条路线不被 Traefik 识别。
Docker-Compose.yml
servicea:
container_name: servicea-ge
image: 'servicea'
restart: always
labels:
- traefik.http.routers.servicea.rule=PathPrefix(`/blog`)
networks:
- internal-network
logging:
driver: json-file
options: {max-size: 20m, max-file: '5'}
environment:
TZ: '${Time_Zone}'
networks:
internal-network:
driver: bridge
name: test
我尝试了一个解决方案,其中我添加了一个中间件来剥离 /blog但这也会导致进一步的问题。现在主页已成功加载,但/blog/addblog等其他路由开始失败,因为 blog 将被删除(原因剥离中间件)。例如:
- traefik.http.routers.servicea.middlewares=strip-blog
- traefik.http.middlewares.strip-blog.stripprefix.prefixes=/blog
任何人都可以提出上述问题的解决方案吗?
解决方案
推荐阅读
- javascript - 使用Function调用DataTable,点击获取TD数据,报错“Cannot read property '0' of undefined”
- reactjs - 如何在没有选项列表的情况下使用 react-select?
- python - Python中不同机器的缩写月份名称的差异
- sql - 查找坐标之间的平均距离
- python-3.x - 如何使用工厂男孩创建一个在用户上有 Fk 的实例?
- linux - 使用脚本自动回答 TTY 提示
- python - 使用 C API 和 `object` 的 `tp_basicsize` 从任意 Python 类派生?
- asynchronous - 为什么在使用 .await 或在 `join!` 之类的宏中会出现“特征绑定的 Future 不满足”?
- python - Python协程在产量上给出未知的无
- php - 我如何在 Laravel 中正确处理错误?