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

Kong网关无法转发请求至本地Docker容器:502错误排查求助

问题解决:Kong网关无法访问本地Docker容器

核心原因

你的Kong容器配置的上游服务地址是http://127.0.0.1:4002,但Docker容器的网络是隔离的——这个127.0.0.1指向的是Kong容器自身的回环接口,而非你的宿主机,所以Kong无法连接到你的Express应用容器。

解决方案(三种可选)

方案1:使用宿主机局域网IP

找到你的宿主机在局域网内的IP地址(比如192.168.1.100),修改Kong的服务配置:

curl -X PATCH http://localhost:8001/services/test_service --data url='http://192.168.1.100:4002'

方案2:Docker Desktop专属域名(Windows/Mac)

如果你用的是Docker Desktop,可以用官方提供的host.docker.internal域名直接指向宿主机:

curl -X PATCH http://localhost:8001/services/test_service --data url='http://host.docker.internal:4002'

方案3:同Docker网络通信(推荐)

把Express容器和Kong加入同一个自定义Docker网络,通过容器名直接访问:

  1. 创建自定义网络:
docker network create kong-net
  1. 重新启动Express容器并加入该网络:
docker run --name test-service --network kong-net -p 4002:4002 mikyll/test-service:latest
  1. 修改Kong服务配置,用容器名作为地址:
curl -X PATCH http://localhost:8001/services/test_service --data url='http://test-service:4002'

验证

修改完成后,重新发送请求测试:

curl -X GET http://localhost:8000/test

此时应该能收到Test unknown path的正常响应。

额外说明

你的路由配置(paths[]=/test、strip_path=true)是正确的,请求/test会被Kong转发到上游服务的根路径,符合你的Express应用逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 13:33:15