问题描述
nginx是使用docker方式运行,再使用nginx进行反向代理时,始终提示502错误,只能将域名指向公网IP+端口,这样并不能起到隐藏端口的目的,防火墙还是需要将6806(思源)的端口开放
想到docker的localhost相当于把宿主机作为路由器获得的更低一层的IP地址,遂百度标题, 果然有大佬提出了解决方案
贴上原文
解决方案
docker默认创建的虚拟网卡名字为docker0
,在宿主机执行下面这句代码 ip addr show docker0
172.17.0.1即宿主机IP
获取所有docker容易对应的ip地址
docker ps -q | xargs -n 1 docker inspect --format 'Container {{ .Name }} => IP {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'
最终配置
location / {
proxy_pass http://172.17.0.1:6806;
}
修改配置,然后关闭6806端口,完美解决