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

Nginx Docker容器无法反向代理同网络下Gogs Docker容器问题求助

问题根源

Nginx反向代理的目标地址配置错误:你配置中proxy_pass http://localhost:3000的localhost指向的是Nginx容器自身的本地环回地址,Nginx容器内没有任何服务监听3000端口,所以返回502错误。
你访问app.test.local:3000能正常打开,是因为这个请求走的是宿主机的端口映射,直接把流量转发到了Gogs容器,和Nginx没有关系。

修复方法

第一步:修改Nginx配置

编辑你挂载的Nginx配置文件default.conf,将location /块的proxy_pass参数修改为:

location / {
  proxy_pass  http://gogs:3000;
}

说明:Nginx和Gogs容器都加入了同一个自定义桥接网络testserver-network,Docker内置DNS服务支持直接通过容器名解析到对应容器的内网IP,这里的gogs就是Gogs容器的名称,3000是Gogs容器内部监听的服务端口,容器间通信不需要走宿主机的端口映射。

第二步:重载Nginx配置

执行以下命令让修改后的配置生效:

docker exec proxy nginx -s reload

可选优化

如果不需要直接通过宿主机3000端口访问Gogs,可以删除Gogs的docker-compose.yml中ports配置下的- 3000:3000行,避免端口冲突,同时减少暴露的服务端口提升安全性。

配置验证

修复完成后访问http://app.test.local即可正常打开Gogs服务。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:24:04