最新消息:

Nginx常见错误处理参考

未分类 admin 3132浏览 0评论

一、NGINX 502错误排查

NGINX
502 Bad Gateway错误是FastCGI有问题,造成
NGINX
502错误的可能性比较多。将网上找到的一些和502 Bad Gateway错误有关的问题和排查方法列一下,先从FastCGI配置入手:
1.FastCGI进程是否已经启动
2.FastCGI worker进程数是否不够
运行 netstat -anpo | grep “php-cgi” | wc -l 判断是否接近FastCGI进程,接近配置文件中设置的数值,表明worker进程数设置太少
参见:http://blog.s135.com/post/361.htm
3.FastCGI执行时间过长
根据实际情况调高以下参数值
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
4.FastCGI Buffer不够

nginx
和apache一样,有前端缓冲限制,可以调整缓冲参数
fastcgi_buffer_size 32k;
fastcgi_buffers 8 32k;
参见:http://www.hiadmin.com/
nginx
-502-gateway-error%E4%B8%80%E4%BE%8B/
5.Proxy Buffer不够
如果你用了Proxying,调整
proxy_buffer_size  16k;
proxy_buffers      4 16k;
参见:http://www.ruby-forum.com/topic/169040
6.https转发配置错误
正确的配置方法
server_name
www.mydomain.com
;
location /myproj/repos {
set $fixed_destination $http_destination;
if ( $http_destination ~* ^https(.*)$ )
{
set $fixed_destination http$1;
}
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Destination $fixed_destination;
proxy_pass http://subversion_hosts;
}
参见:http://www.ruby-forum.com/topic/169040
当然,还要看你后端用的是哪种类型的FastCGI,我用过的有php-fpm,流量约为单台机器40万PV(动态页面), 现在基本上没有碰到502。

7.php脚本执行时间过长
将php-fpm.conf的0s的0s改成一个时间
来源:http://blog.nowans.com/content/log.2008.10.29.229.html


二、Nginx 413错误的排查:修改上传文件大小限制

在上传时
nginx
返回了413错误,查看log文件,显示的错误信息是:”413 Request Entity Too Large”, 于是在网上找了下“
nginx
413错误”发现需要做以下设置:

nginx
.conf增加 client_max_body_size的相关设置, 这个值默认是1m,可以增加到8m以增加提高文件大小限制;
如果运行的是php,那么还要检查php.ini,这个大小client_max_body_size要和php.ini中的如下值的最大值一致或者稍大,这样就不会因为提交数据大小不一致出现的错误。
post_max_size = 8M
upload_max_filesize = 2M

三、Nginx 400错误排查:HTTP头/Cookie过大
今天有人汇报
nginx
的HTTP400错误,而且这个HTTP400错误并不是每次都会出现的,查了一下发现
nginx
400错误是由于request header过大,通常是由于cookie中写入了较长的字符串所引起的。
解决方法是不要在cookie里记录过多数据,如果实在需要的话可以考虑调整在
nginx
.conf中的
client_header_buffer_size
(默认1k)
若cookie太大,可能还需要调整
large_client_header_buffers
(默认4k),该参数说明如下:
请求行如果超过buffer,就会报HTTP 414错误(URI Too Long)

nginx
接受最长的HTTP头部大小必须比其中一个buffer大,否则就会报400的HTTP错误(Bad Request)。

作者:Jeff (对作者的总结表示感谢!)
来源:http://www.jefflei.com/post/1021.html
来源:http://willko.javaeye.com/blog/333449

转载请注明:爱开源 » Nginx常见错误处理参考

您必须 登录 才能发表评论!