我在docker容器打开端口8080以及nginx服务器打开端口80中部署了我的springboot项目在此处输入图像描述
当我使用卷曲http://localhost:8080/heya/index正常返回
但是当我使用卷曲http://localhost/heya/index希望我能从nginx代理访问,但失败了。我查看了日志,上面写着
*24#24:11 connect((失败(111:连接被拒绝(,同时连接到上游,客户端:172.17.0.1,服务器:,请求:";GET/heya/index HTTP/1.1";,上游:";http://127.0.0.1:8080/heya/index",主机:";localhost">
这是我的nginx.conf
在此处输入图像描述
我想不通,需要帮助。
我终于得到了答案!!
我使用主机网络模式运行nginx容器和webapp容器,它起作用了。
111:连接被拒绝(,同时连接到上游
表示Nginx无法连接到上游服务器。
您的
proxy_pass http://heya;
正在告诉Nginx上游正在主机名heya
上[在默认端口80]上使用HTTP协议。除非您在同一Compose网络中运行多个容器,否则主机名不太可能是heya
。
如果Java应用程序在同一容器内的8080端口上运行,使用HTTP协议,则正确的proxy_pass
将是
proxy_pass http://localhost:8080;
(因为容器视图中的localhost
是容器本身(。