Nginx报错:upstream timed out (110: Connection timed out) 原因与解决方法

今天刚好周末,恰好白天有事也不在电脑旁边,晚上的时候发现博客有问题了,只要是访问.php的都打不开,由于我用了百度CDN,它返回的是一个“502”源站未知错误。

环境:Linux+Nginx+PHP+Mysql

 

我只好上服务器去排查了一下,我查看了Nginx的日志文件,用命令:

[[email protected] logs]# tail error.log

结果发现有大量的类似如下的这种错误:

upstream timed out (110: Connection timed out) while reading response header from upstream,upstream: "fastcgi://127.0.0.1:9000"

中文翻译

从上游读取响应标头时,上游超时(110:连接超时),上游:"fastcgi://127.0.0.1:9000"

 

具体的完整错误如下:

2020/11/29 20:24:43 [error] 22724#0: *42932264 upstream timed out (110: Connection timed out) while reading response header from upstream, client: *.*.*.42, server: fujieace.com,www.fujieace.com,*.fujieace.com, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "mayalan.fujieace.com"
2020/11/29 20:24:44 [error] 22724#0: *42932270 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 58.*.*.*, server: fujieace.com,www.fujieace.com,*.fujieace.com, request: "GET /linux/permission-denied.html HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.fujieace.com"

upstream timed out 110

 

原因:

只要出现类似于“fastcgi://127.0.0.1:9000”,基本上就是后端php服务有问题了。例如:php服务未启动。php服务虽然启动了,但是,却查不到9000端口.......等等原因。

 

解决方法

由于我为了让网站能快速恢复正常,我也没有细排查原因,我只简单的用了几个命令:

1、top ,正常。

2、df -h ,磁盘正常,未满。

3、free -m,内存正常。

 

我最终的解决方法是:

先杀掉 php-fpm 服务,再重启 php-fpm 服务,最终网站恢复正常。

[[email protected] logs]# pkill -9 php-fpm
[[email protected] php]# ./sbin/php-fpm

 

我个人感觉我的原因是:php-fpm启动以后,没有出现9000端口,也就是我的 9000端口 未监听。虽然我上服务器用命令“ps aux | grep php”能够查到这个服务,但是端口当时我却没有去看。

 

给大家两个Linux 查看端口占用情况命令,可以使用 lsof 和 netstat 命令。

[[email protected] /]# netstat -tunlp | grep 9000
[[email protected] /]# lsof -i:9000

 

其它解决方法

网上文章也有一种修改配置文件的解决方法,504导致访问无响应回复的解决方法。

我暂时没有用此种方法,后期我观察一段时间再说!毕竟我重启php-fpm服务能解决,就不乱改nginx.conf配置了。

 

具体解决方法如下:

在server标签内增加“绿色”背景的代码内容。 再重启Nginx服务。

重点看:xxx_xxx_timeout 300;

[[email protected] /]# vim nginx.conf
server {
        listen 80;
        server_name zabbix.gree.com;
        access_log /roobo/logs/nginx/zabbix.gree.com_access.log main;
        error_log /roobo/logs/nginx/zabbix.gree.com_error.log error ;
        root /roobo/webserver/zabbix;
        index index.html index.htm index.php;
 
        location / {
            try_files $uri $uri/ /index.php$is_args$args;
        }
        location ~ \.php$ {
            try_files $uri =404;
            include fastcgi.conf;
            fastcgi_pass 10.7.19.195:9000;
        }
 
       #error Connection timed out and 504 error
       large_client_header_buffers 4 16k;
       client_max_body_size 30m;
       client_body_buffer_size 128k;
       fastcgi_connect_timeout 300;
       fastcgi_read_timeout 300;
       fastcgi_send_timeout 300;
       fastcgi_buffer_size 64k;
       fastcgi_buffers   4 32k;
       fastcgi_busy_buffers_size 64k;
       fastcgi_temp_file_write_size 64k;
}

 

注意:

php设置时间过短,执行超时有可能会影响。因此,也需要通过修改 php.ini 文件。

调整 max_execution_time = 300 ;

再重启php服务。

 

总结:

不管是改 nginx.conf 还是 php.ini ,甚至是 php-fpm.conf  配置文件;首先必须要保证 127.0.0.1:9000 能通,这个也是前提,如果没有这个前提,一切都是白瞎了。

    A+
发布日期:2020年11月29日 21:13:38  所属分类:Nginx
最后更新时间:2020-11-29 21:34:12
评分: (1 票;平均数5.00 ;最高评分 5 ;用户总数1;总得分 5;百分比100.00)
付杰
Python零基础入门到高级视频教程(500全集)
  • ¥ 298.0元
  • 市场价:899.0元
数据库基础篇:SQLServer+MySQL+HeidiSQL
  • ¥ 189.0元
  • 市场价:269.0元
刷流量 刷人气 刷点击 刷收藏 刷APP关键词
刷流量 刷人气 刷点击 刷收藏 刷APP关键词
  • ¥ 1.0元
  • 市场价:9.9元
PHP零基础入门到精通视频教程
  • ¥ 199.0元
  • 市场价:199.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: