Nginx报错日志有以下内容:php
upstream timed out (110: Connection timed out) while reading response header from upstream..nginx
服务器开发环境: SLES12sp2 + Nginx + PHP-FPM + Maraidb集群数据库
请求PHP页面,浏览器一直处在加载状态,页面阻塞,没有任何反应;浏览器
网上不少资料,大意是修改nginx配置文件,延长fastcgi等待时间,但不能解决根本问题。服务器
经测试,问题出在php-fpm,php代码要使用file存取session,读写数据库,其中有一项操做缓慢,都能形成nginx假死;session
解决方案:php7
打开php-fpm慢日志:php-fpm
mkdir /var/log/php-fpm && chown nginx:nginx /var/log/php-fpm测试
vi /etc/php7/fpm/php-fpm.d/www.confspa
修改:
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
能够清楚看到执行慢的语句和操做,这样就能找到具体缘由!