docker部署nginx反向代理遇到的问题记录
问题
使用docker部署nginx之后,进行域名反向代理,出现如下错误:
*** connect() failed (111: Connection refused) while connecting to upstream, client: ***
分析
一开始以为是nginx配置异常,认真检查了下发现没有问题。
网上找了半天发现全是PHP相关的,我是JAVA所以无关。
另外有两个老哥也是JAVA,其中一个尝试了一下,发现情况与我也不相同。
逐步尝试之下,发现将nginx的方向代理地址由127.0.0.1:XXXX
写成互联网地址之后,代理就通了。
那么,问题就集中在了反向代理的地址上。
解决
琢磨了一下,想起来:
docker环境下,容器之间类似于在一个局域网中的不同电脑,容器之间要访问只能通过局域网ip来进行访问,127.0.0.1或者localhost之类的只能在容器内部访问。
而我习惯性的将配置写成了linux直接部署nginx的127.0.0.1:XXXX
。
因此更改代理地址为对应容器所在的容器地址即可。
补充
我直接在portainer中查看ip address
也可以通过docker命令
docker inspect [容器]
查看