场景
在本地docker
上用nginx
部署项目前端的时候遇到的一个问题
页面可以正常预览,但是反向代理向后端发起请求时报502 Bad Gateway
,如图
先看一下我nginx
的配置
解决思路
使用宿主机的postman
直接测试后端接口是没问题的
确保后端服务正常运行的情况下,又去容器内部再测试了一下,发现无法向宿主机目标端口发出请求
观察日志可以发现使用docker
部署时,127.0.0.1
指向的是容器内部的ip
看了一下宿主机的ip地址是192.168.0.100
,那么可以修改一下反向代理的配置
location /api/ {
proxy_pass http://192.168.0.100:8080/admin/;
tcp_nodelay on;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
这么一测试确实是通了,但其实还有一个问题:宿主机的ip地址会变…
使用host.docker.internal
替换localhost
即可
而host.docker.internal
就是宿主机的本地ip
通!
如果你觉得这篇文章对你有所帮助,记得走之前点个「赞」和「在看」哦
欢迎点击左下角「阅读原文」访问博客
原文始发于微信公众号(正如的集装箱):关于解决docker中nginx反向代理请求后端的502错误
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/241844.html