Nginx的connect() failed 错误解决

时间: 2017-11-03 12:00 栏目: Linux 浏览: 19258 赞: 2192 踩: 88 字体:

以下为本篇文章全部内容:

最近网站打开总是异常,网站会偶尔死掉,我用的是阿里云的一台低配linux服务器,第一想法就是登陆进去查看日志

image.png

[error] 7120#0: *7779 connect() failed (111: Connection refused) while connecting to upstream, client: xxx, server: xxx, request: "GET xxx HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "xxx", referrer: "xxx"
[error] 7120#0: *7982 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: xxx, server: xxx, request: "GET xxx HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "xxx"
[error] 7120#0: *7847 connect() failed (110: Connection timed out) while connecting to upstream, client: xxx, server: xxx, request: "GET xxx HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "xxx"

看到这样的日志马上就联想到了是fastcgi出了问题,这应该是在连接到php那边的时候出了问题所导致的,所以我们要去排除问题就得先从php-fpm下手因为采用的方法所nginx代理php-fpm的9000端口,既然知道原因就好办了。

第一步:查看php-fpm是否启动,可以通过以下办法排除

ps -aux | grep php-fpm 这条命令查看是否有php-fpm的进程在运行

刚刚我还提到了一个点就是9000端口,那么我也可以通过查看网络端口确定是否在运行

netstat -tanlp | grep 9000

以上方法可以帮助我们排除php-fpm是否处于正常运行状态

第二步:修改php-fpm.conf配置文件,因为出现上述问题是因为php-fpm队列满了的原因导致的,因此我们需要修改一个参数

pm.max_children 这个值修改稍微大一点,修改多少取决自己实际情况和机器配置

第三步:重启php-fpm然后继续观察nginx的错误日志,等待网站运行一段时间看看还有没有这个错误,如果没有问题解决。