访问PHP时一直出现http504GatewayTime-out错误
2016/11/01 10:32:45[error]3897#0:*1831129upstreamtimedout(110:Connectiontimedout)whilereadingresponseheaderfromupstream,client:42.92.152.137,server:xxx.xxx.cn,request:“GET/HTTP/1.1″,upstream:“fastcgi://unix:/var/run/PHP5-fpm.sock:″,host:“xxx.xxx.cn”,referrer:“http://xxx.xxx.cn/”
从日志的表示来看应该不是Nginx的问题,而是fast-cgi执行超时没有及时返回数据到ngnix的问题.可web和数据库负载都不高,不应该是程序超时的问题.
一般看来,这种情况可能是由于Nginx默认的fastcgi进程响应的缓冲区太小造成的,这将导致fastcgi进程被挂起,如果你的fastcgi服务对这个挂起处理的不好,那么最后就极有可能导致504GatewayTime-out
现在的网站,尤其某些论坛有大量的回复和很多内容的,一个页面甚至有几百K
默认的fastcgi进程响应的缓冲区是8K,我们可以设置大点
在Nginx.conf里,加入:
fastcgi_buffers8128k
这表示设置fastcgi缓冲区为8×128k
当然如果您在进行某一项即时的操作,可能需要Nginx的超时参数调大点,例如设置成60秒:
send_timeout60;
server{
vi /etc/PHP5/fpm/PHP-fpm.conf 增加以下配置
2016/11/01 10:36:46 [error] 5471#0: *238740 connect() to unix:/var/run/PHP5-fpm.sock Failed (11: Resource temporarily unavailable) while connecting to upstream,client: 42.92.152.137,server: *.*.cn,request: "GET / HTTP/1.1",upstream: "fastcgi://unix:/var/run/PHP5-fpm.sock:",host: "*.*.cn"