nginx docker 容器如何访问宿主机的 golang 程序
如题,我们在部署 Golang 代码时,没有通过打包 Go 代码到容器镜像,而是直接部署编译后的代码到服务端。但我们的服务器环境是跑在容器上的,也就是 Nginx 是在容器里。如果不考虑容器,那部署 Nginx 的配置应该如下方所示:

server {
server_name your_domain;
location / {
proxy_pass http://127.0.0.1:9990;
}
}当我们按上方的配置部署时,就无法访问了,就算 GO 自己启动了通过 localhost:9990 能访问,但通过 Nginx your_domain 就不行,折腾了一会儿,后来想明白了。
上面代码里的 proxy_pass 对应的 127.0.0.1,实际上是 Nginx 所在容器的 127.0.0.1,而 GO 没有在容器里,创建服务后,是跑在宿主机上的,因此,没法跑通。
有了大思路,通过以下方式能跑通:
server {
server_name your_domain;
location / {
proxy_pass http://192.168.31.61:9990;
}
}上方代码里的 192.168.31.61 宿主机的 ip,因此可以直接访问到。
相关推荐
-
「nginx」十、nginx的location配置详解2026-07-04 00:51:45 -

最清晰的mysql体系架构图 ,助你深度掌握MySQL开发管理,赢在大数据时代
最清晰的mysql体系架构图 ,助你深度掌握MySQL开发管理,赢在大数据时代2026-07-04 00:21:47 -
PHP读取Excel内的图片2026-07-03 00:07:41 -
mysql:Otter跨机房数据同步(单向)2026-07-03 00:02:48 -

在windows10系统下搭建IIS+PHP+MYSQL+phpMyAdmin服务器运行环境
在windows10系统下搭建IIS+PHP+MYSQL+phpMyAdmin服务器运行环境2026-07-02 00:15:08