更新nginx后连接上游时出现“nginx:connect()failed(111:Connection refused)”错误

3

在将nginx更新到1.19版本后,我的Web服务器停止工作。

当我通过浏览器发送请求时,浏览器显示502网关超时错误。

当我检查nginx错误日志时,发现了这个错误。

2021/03/24 06:25:50 [error] 56837#56837: *7775 connect() failed (111: Connection refused) while connecting to upstream, client: 85.208.98.19, server: bienestarmutuo.org, request: "GET /ten-principles-of-the-new-education/ HTTP/1.1", upstream: "fastcgi://10.64.10.43:8050", host: "mutualwelfare.org"

1
问题很模糊,但是嘿...欢迎!上游负责允许来自外部源的连接。这意味着之前运行的某个东西(无论是什么)不再运行或者阻止了nginx与其通信的尝试。5XX系列的HTTP错误代码是服务器错误。502 Bad Gateway - 服务器作为网关/代理,从上游服务器接收到无效的响应。检查nginx发送流量的目标,还有到达该目标的路径(防火墙...等等)。一些基本知识也会对你有所帮助! - OldFart
(111:连接被拒绝)这句话的意思就是字面上的意思。为什么你今天会遇到这个“十字路口”有很多可能的原因。确保你添加更多细节,以便吸引有用的关注。在过去,我从来没有因为“更新”nginx到另一个版本(按数字计算)而突然导致网络通信停止。即使使用一些复杂的配置,也从未出现过类似的情况。一般来说,当某些事情出现问题时(特定版本、重大变化),nginx配置测试会输出一些错误信息,就像一只忙碌的蜜蜂一样...检查目标!祝你愉快! - OldFart
1个回答

4

在经过多个安装和卸载的尝试后,我花费了很多小时来找出问题的根源。

问题对我来说是nginx和php使用了不同端口名称。

在php中(/etc/php/8.0/fpm/pool.d/bienestarmutuo-org8050.conf),我有以下配置:

listen = localhost:8050

在nginx的配置文件(/etc/nginx/sites-available/bienestarmutuo.org.conf)中,我有以下内容:
fastcgi_pass 10.64.10.43:8050;

这已更改为:
在nginx中
fastcgi_pass 127.0.0.1:8050;

在PHP中

listen = 127.0.0.1:8050

重新启动PHP和Nginx,一切恢复正常。

注意:使用127.0.0.1而不是localhost,可以避免DNS查找。

对我来说,解决方案是在PHP和Nginx中同时使用相同的IP:端口引用 -> 127.0.0.1


这是你必须做的方式。FPM配置指明:监听8050端口,但仅限于本地IP(localhost/127.0.0.1)。尝试从其他任何IP连接将不被接受。很高兴你自己找到了问题所在。 - Timo Stark

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接