错误排查

Posted setevn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误排查相关的知识,希望对你有一定的参考价值。

1、Nginx 502 Bad Gateway

php-cgi进程数不够用、php执行时间长(mysql慢)、或者是php-cgi进程死掉,都会出现502错误

一般来说nginx 502 Bad Gateway和php-fpm.conf的设置有关,而Nginx 504 Gateway Time-out则是与nginx.conf的设置有关

1)、查看当前的PHP FastCGI进程数是否够用:

netstat -anpo | grep "php-cgi" | wc -l

如果实际使用的“FastCGI进程数”接近预设的“FastCGI进程数”,那么,说明“FastCGI进程数”不够用,需要增大。

2)、部分PHP程序的执行时间超过了Nginx的等待时间,可以适当增加

nginx.conf配置文件中FastCGI的timeout时间,例如:

http {

......

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

......

}

2、413 Request Entity Too Large

解决:增大client_max_body_size

client_max_body_size:指令指定允许客户端连接的最大请求实体大小,它出现在请求头部的Content-Length字段. 如果请求大于指定的值,客户端将收到一个"Request Entity Too Large" (413)错误. 记住,浏览器并不知道怎样显示这个错误.

php.ini中增大

post_max_size 和upload_max_filesize

3 Ngnix error.log出现:upstream

sent too big header while reading response header from upstream错误

1)如果是nginx反向代理

proxy是nginx作为client转发时使用的,如果header过大,超出了默认的1k,就会引发上述的upstream sent too big header (说白了就是nginx把外部请求给后端server,后端server返回的header太大nginx处理不过来就导致了。

server {

listen80;

server_name*.xywy.com ;

large_client_header_buffers 4 16k;

location / {

#添加这3行

proxy_buffer_size 64k;

proxy_buffers32 32k;

proxy_busy_buffers_size 128k;

proxy_set_header Host $host;

proxy_set_header X-Real-IP$remote_addr;

proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;

}

}

2) 如果是 nginx+PHPcgi

错误带有 upstream: "fastcgi://127.0.0.1:9000"。就该

多加:

fastcgi_buffer_size 128k;

fastcgi_buffers 4 128k;

server {

listen       80;

server_name  ddd.com;

index index.html index.htm index.php;

client_header_buffer_size 128k;

large_client_header_buffers 4 128k;

proxy_buffer_size 64k;

proxy_buffers 8 64k;

fastcgi_buffer_size 128k;

fastcgi_buffers 4 128k;

location / {

......

}

}



以上是关于错误排查的主要内容,如果未能解决你的问题,请参考以下文章

NGINX 502错误排查(转)

个人504错误排查

Day660.定位排查应用问题 -Java业务开发常见错误

如何使错误日志更加方便地排查问题

nginx排查502错误

日志文件错误排查