提醒:本文最后更新于 2858 天前,文中所描述的信息可能已发生改变,请仔细核实。
前段时间,有个页面出现了502,查看了所有相关程序的日志都没报错。。。
感觉十分之莫名其妙,因为这个页面一直是正常的,突然间也就不行了。。。
在shell下,测试了页面的PHP脚本没问题,那就是Nginx问题了,想起Nginx的日志等级是crit。
设置日志等级成error,问题出现了:
[error] upstream prematurely closed FastCGI stdout while reading response header from upstream
检查了页面,发现页面大小比较大,试图减少一半输出,立即200正常。遂将nginx.conf中的fastcgi_buffers_size
和fastcgi_buffers
做了更改。
目前为最大1056K,应该是没问题了,以前是最大272K:
fastcgi_buffer_size 32k;
fastcgi_buffers 32 32k;
建议缓冲区块数和大小相等,会更合理。
一般来说,其实以16 16K就足够了,另外数值可以被4k可除会好些,因为一般PAGESIZE默认是4096。每个人都有自己的实际情况,请不要照搬。
转载请注明转自:kn007的个人博客的《记录:Nginx因为FastCGI导致的HTTP 502》
不知道是你主机原因还是我网络原因,我这打开你的站经常丢失CSS样式……
@锋子: 静态文件是在又拍云。
确实这个配置的注意一下,页面小没发现。
@vfhky: 兄弟好域名!
@kn007: 有点长。。
@vfhky: ...如果嫌弃可以送给我,哈哈哈哈哈哈
@kn007: 得先找个简短一点的
我也遇到过这样的问题。
@小王涛: 502一般只在nginx见到