解决docker nginx 502错误 connect() failed (111: Connection refused) while connecting to upstream

这篇具有很好参考价值的文章主要介绍了解决docker nginx 502错误 connect() failed (111: Connection refused) while connecting to upstream。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  场景

docker里启动了nginx容器,然后配置好了前端页面,后端服务在宿主机里启动运行,页面能正常预览,但是反向代理请求后端的时候报502,宿主机的wlan ip是192.168.1.106,宿主机docker网桥ip是172.17.0.1

解决docker nginx 502错误 connect() failed (111: Connection refused) while connecting to upstream

解决docker nginx 502错误 connect() failed (111: Connection refused) while connecting to upstream

若服务器是网线连接的则服务器的ip在eth0看,因为我用的是wifi所以在wlan有ip

解决docker nginx 502错误 connect() failed (111: Connection refused) while connecting to upstream 

nginx的配置

解决docker nginx 502错误 connect() failed (111: Connection refused) while connecting to upstream

使用docker部署Nginx反向代理报502错误

解决docker nginx 502错误 connect() failed (111: Connection refused) while connecting to upstream

原因

使用docker部署时,127.0.0.1指向的是docker容器的ip

我们先查看nginx容器里的ip是多少

docker inspect nginx

解决docker nginx 502错误 connect() failed (111: Connection refused) while connecting to upstream可以看到网关是172.17.0.1 ,ip地址是172.17.0.4 

然后再来查看宿主机的docker0网桥下的ip是多少

解决docker nginx 502错误 connect() failed (111: Connection refused) while connecting to upstream

所以要在nginx的配置文件里配置应改为这样,改成宿主机在docker0网桥下分配的ip:172.17.0.1或者宿主机的真实ip:192.168.1.106(非公网)

解决docker nginx 502错误 connect() failed (111: Connection refused) while connecting to upstream

原理:当安装了docker,宿主机会和docker新建一个叫docker0的网桥,用于宿主机和docker容器进行通信。每个docker容器都有一个docker0网桥里分配的ip。

然后还是不通,还是报502,于是进行以下排查思路

1.宿主机和docker里的容器是否能通信,ping通ip

宿主机能ping通docker里的nginx容器

解决docker nginx 502错误 connect() failed (111: Connection refused) while connecting to upstream

docker里的nginx容器也能ping通宿主机在docker0网桥分配的ip 

解决docker nginx 502错误 connect() failed (111: Connection refused) while connecting to upstream

若容器无ping命令则可以

#这个命令的作用是:同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。
apt-get update
2)等更新完毕以后再敲命令即可。
apt-get install iputils-ping

2.进行telnet端口检测是否端口能通信

docker里的nginx容器对宿主机在docker0网桥分配的ip +后端启动的服务端口是否能通信

解决docker nginx 502错误 connect() failed (111: Connection refused) while connecting to upstream

发现8089端口和6379端口都无法通信,只有80端口能通信

若容器无telnet则进行安装即可

apt-get install telnet

于是查看宿主机防火墙开放的端口

解决docker nginx 502错误 connect() failed (111: Connection refused) while connecting to upstream

解决docker nginx 502错误 connect() failed (111: Connection refused) while connecting to upstream

发现开放了80端口,那更加确定了8089端口由于防火墙没开通的情况下,导致容器无法与宿主机进行通信

于是添加了8089端口后

继续telnet--------------通!!!!!

解决docker nginx 502错误 connect() failed (111: Connection refused) while connecting to upstream文章来源地址https://www.toymoban.com/news/detail-447167.html

到了这里,关于解决docker nginx 502错误 connect() failed (111: Connection refused) while connecting to upstream的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nginx 502 Bad Gateway 错误的原因及解决方法

    多数是后端问题也就是PHP的问题, 简单的情况可以刷新(不是一般的刷新哦, Ctrl + F5  强制刷新)解决。在php服务当中,有两个参数非常的重要: max_requestst 和 max_children ,具体的原因必须要查看日志才可以弄明白! 1、检查PHP基础设置 修改 /www/server/php/80/etc/php-fpm.conf requ

    2024年02月03日
    浏览(46)
  • 使用conda创建虚拟环境时出现错误(CondaHTTPError: HTTP 000 CONNECTION FAILED for url)

    一、 原因 镜像网址配置有问题! http是超文本传输协议,信息是明文传输,https则是具有安全性的【ssl/tls】加密传输协议。这里我们直接用http即可,不用加s。 二、解决步骤 1. win+R打开运行窗口,输入如图命令 2. 打开“.condarc“文件,右键 打开方式选择 记事本 即可 3. 修改为

    2024年03月16日
    浏览(56)
  • ubuntu中解决Failed to connect to 127.0.0.1 port xxxxx: Connection refused ubuntu中解决Failed to connect to 127.0.0.1 port xxxxx: Connection refused

              查看一下代理 git config --global http.proxy git config --global https.proxy        有就取消,没有就换一种方法 git config --global --unset http.proxy git config --global --unset https.proxy            查看系统环境有没有使用代理         出现以下类似的配置          如果有相

    2023年04月14日
    浏览(54)
  • 解决transport=websocket‘ failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED

    目录 解决transport=websocket failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED 错误原因 解决方法 1. 确认服务器有部署WebSocket服务 2. 确认服务器防火墙设置 3. 检查服务器端口 4. 检查客户端网络环境 5. 联系网络管理员 结论 实际应用场景示例代码 WebSocket介绍 特点 工作原理

    2024年01月17日
    浏览(41)
  • 解决CondaHTTPError HTTP 000 CONNECTION FAILED for url解决方法

    问题: 使用conda install 命令安装包提示 CondaHTTPError: HTTP 000 CONNECTION FAILED for url 分析:网络连接问题,大概率是网速不行或者源没有换 解决方案: 修改国内源 (国内源已修改或许是因为网速波动,此时可以延长下载时间) 找到 .condarc 文件 文件内容替换为: 如果前两步替换

    2024年02月10日
    浏览(40)
  • 解决思路:transport=websocket‘ failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED

    遇到 \\\"transport=websocket\\\' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED\\\" 错误时,意味着你的程序无法建立与WebSocket服务器的连接,可能是因为服务器拒绝连接请求或无法访问服务器。 要解决这个问题,你可以考虑以下几个步骤: 确认WebSocket服务器是否正在运行,并且可

    2024年02月09日
    浏览(65)
  • Vue3 报 WebSocket connection to ‘ws://x.x.x.x:8080/ws‘ failed 的错误

    问题:控制台每过几秒就报WebSocket的错误,但是页面显示正常。 原因:WebSocket是一种双向通信的协议,它在尝试建立到 \\\'ws://x.x.x.x:8080/ws\\\' 的通信失败。原因可能是服务器 \\\'x.x.x.x\\\' 不可用,或WebSocket服务未正确配置。因此,我们去配置一下通信问题。 解决: 整体代码: 重点:修

    2024年02月04日
    浏览(39)
  • Linux中建立TCP网络通信,代码运行异常,[Errno 111] Connection refused

    代码如下: 报错信息: 原因: 直接理解报错的意思就是:链接失败。 Linux端作为客户端,Windows端作为服务端,排查服务端的本地地址,发现有误,所以引起链接失败。

    2024年02月15日
    浏览(35)
  • 解决windows下报错CondaHTTPError: HTTP 000 CONNECTION FAILED问题

    conda环境突然崩掉了,重新配置了系统环境变量后conda环境正常,但是在创建新的虚拟环境后报错 问题很清楚,就是镜像源的问题,但是查找了一些解决方法都无效,包括根据清华提供的更换源的方法,最后按照这个方法解决后,记录一下。 首先,创建condarc文件,Windows 用户

    2024年02月15日
    浏览(42)
  • 解决Failed to connect to github.com port 443:Connection refused

    如题,在终端执行git clone时提示Failed to connect to github.com port 443:Connection regused错误 解决方案如下: 本地有连接vpn,通过在终端输入以下命令解决: git config --global http.proxy http://127.0.0.1:7890 说明:7890为本地混合配置的端口号

    2024年02月13日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包