upstream timed out (110: Connection timed out) while reading response header from upstream
Nginx报错日志有如下内容:
upstream timed out (110: Connection timed out) while reading response header from upstream..
服务器开发环境: SLES12sp2 + Nginx + PHP-FPM + Maraidb集群
请求PHP页面,浏览器一直处在加载状态,页面阻塞,没有任何反应;
网上很多资料,大意是修改nginx配置文件,延长fastcgi等待时间,但不能解决根本问题。
经测试,问题出在php-fpm,php代码要使用file存取session,读写数据库,其中有一项操作缓慢,都能造成nginx假死;
解决方案:
打开php-fpm慢日志:
mkdir /var/log/php-fpm && chown nginx:nginx /var/log/php-fpm
vi /etc/php7/fpm/php-fpm.d/www.conf
修改:
request_slowlog_timeout = 2s
request_terminate_timeout = 30s
slowlog = /var/log/php-fpm/$pool.log.slow
重启nginx和php-fpm
刷新页面,页面一直停留在阻塞状态,没有反应,这时,
tailf /var/log/php-fpm/www.log.slow
可以清楚看到执行慢的语句和操作,这样就能找到具体原因!