记录:Nginx因为FastCGI导致的HTTP 502

提醒:本文最后更新于 2631 天前,文中所描述的信息可能已发生改变,请仔细核实。


前段时间,有个页面出现了502,查看了所有相关程序的日志都没报错。。。

感觉十分之莫名其妙,因为这个页面一直是正常的,突然间也就不行了。。。

在shell下,测试了页面的PHP脚本没问题,那就是Nginx问题了,想起Nginx的日志等级是crit。

设置日志等级成error,问题出现了:

[error] upstream prematurely closed FastCGI stdout while reading response header from upstream

检查了页面,发现页面大小比较大,试图减少一半输出,立即200正常。遂将nginx.conf中的fastcgi_buffers_sizefastcgi_buffers做了更改。

目前为最大1056K,应该是没问题了,以前是最大272K:

fastcgi_buffer_size 32k;
fastcgi_buffers 32 32k;

建议缓冲区块数和大小相等,会更合理。

一般来说,其实以16 16K就足够了,另外数值可以被4k可除会好些,因为一般PAGESIZE默认是4096。每个人都有自己的实际情况,请不要照搬。

转载请注明转自:kn007的个人博客的《记录:Nginx因为FastCGI导致的HTTP 502