You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Traefik/Docker反向代理环境下Postman调用API返回404问题求助

问题排查与修复方案

你遇到的404问题主要是Traefik路由配置冲突和命名错误导致的,按以下步骤修正即可:

1. 修正后端容器路由命名错误

后端配置中路由规则绑定的路由器名称和前端重名,导致规则冲突不生效:
原错误配置:

- "traefik.http.routers.glf-web.rule=Host(`localhost`) && PathPrefix('/api/')"

修改为(和你定义的后端路由器名glf-api保持一致):

- "traefik.http.routers.glf-api.rule=Host(`localhost`) && PathPrefix('/api/')"

2. 配置路由优先级

前端路由规则无路径限制,默认会优先匹配所有请求,需给后端API路由设置更高优先级,确保/api前缀的请求优先走后端:
给后端容器labels添加以下配置:

- "traefik.http.routers.glf-api.priority=100"

3. 可选:添加路径前缀剥离中间件

如果你的.NET Core接口本身没有统一配置/api前缀,需要把请求路径中的/api去掉再转发给后端,给后端容器labels添加以下配置:

# 定义剥离/api前缀的中间件
- "traefik.http.middlewares.strip-api.stripprefix.prefixes=/api"
# 给后端路由绑定中间件
- "traefik.http.routers.glf-api.middlewares=strip-api"

4. 修正Traefik容器冗余配置

Traefik配置中存在重复的command字段,虽然不影响功能但建议删除第一行冗余的command: --api.insecure=true --providers.docker,避免YAML解析异常。

5. 可选:明确指定后端服务端口

如果你的.NET Core容器没有默认暴露80端口,可手动指定转发端口避免Traefik识别错误,给后端容器labels添加:

# 端口替换为你.NET Core程序实际监听的端口
- "traefik.http.services.glfmanager.api.loadbalancer.server.port=80"

所有配置修改完成后,执行docker-compose down && docker-compose up -d重启容器即可验证接口连通性。

内容的提问来源于stack exchange,提问作者smcg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 08:36:01