Posts Tagged ‘Ngnix502’

Nginx502 bad gateway

发了这么多次的版本,还是第一次这么悲剧的扯了这么长时间,虽然距离这个悲催的日子已有段时间,为了纪念,有必要记录一下,以免下次再犯。 用httpwatch监测发现,部分请求回来为502 bad gateway,运维发现,请求还没有到达服务端就已经错误返回了。运行一个简单的php文件,那还都是正常的,让其重启,发现问题依旧啊,后来换了个运维,重启之后竟然正常了,╮(╯▽╰)╭。 网上查看,php-fpm的默认静态处理方式会使得php-cgi的进程长期占用内存而无法释放,这也是导致nginx出错的原因之一。 据分析 with the help of memory_limit to 256M, max_execution_time=300s and fastcgi_read_timeout=240s 查了下原因可能是上面三个 不过我刚只重启了下php,没改配置,php-fpm可能假死了。 资料详情: 我的VPS是256M的内存,CPU是四核心的,所以更多的我会在乎内存。而在我调试服务器的时候通常会遇到Nginx502 bad gateway和504 Gateway Time-out的错误。分析nginx.conf我发现server和fastcgi的buffers过多,导致fastcgi请求的数量过大,php-fpm无法及时处理而出错。循此思路我们可以再总体buffers不变的情况下减少请求数量,具体的ningx.conf改动细节如下: 程序代码                server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 1 128k;# 4 32k client_max_body_size 8m; sendfile on; tcp_nopush     on; keepalive_timeout 60; tcp_nodelay on; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 128k; fastcgi_buffers 2 256k;#8 128 [...]