Nginx 502 Bad Gateway 错误的原因及解决方法
多数是后端问题也就是PHP的问题, 简单的情况可以刷新(不是一般的刷新哦,
Ctrl + F5
强制刷新)解决。在php服务当中,有两个参数非常的重要:
max_requestst
和
max_children
,具体的原因必须要查看日志才可以弄明白!
1、检查PHP基础设置
修改
/www/server/php/80/etc/php-fpm.conf request_terminate_timeout = 100
,把
100
改成
5
;
php执行超时,修改
/usr/local/php/etc/php.ini 将max_execution_time
为
300
;
2、FastCGI进程是否已经启动
1
ps
aux |
grep
php
查看是否启动了
php-fpm
服务;
3、FastCGI worker进程数是否不够
运行linux命令:
1
netstat
-anpo |
grep
“php-cgi” |
wc
-l
判断是否接近FastCGI进程,接近配置文件中设置的数值,表明worker进程数设置太少;
4、FastCGI执行时间过长
PHP程序执行时间超过了Nginx等待时间,可以适当增加
nginx.conf
配置文件中
FastCGI
的
timeout
时间,根据实际情况调高以下参数值:
1
2
3
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
5、FastCGI Buffer不够
nginx和apache一样,有前端缓冲限制,可以调整缓冲参数
1
2
fastcgi_buffer_size 32k;
fastcgi_buffers 8 32k;
6、FastCGI 缓冲区设置过小
首先查找nginx日志文件,目录
/var/log/nginx
,在日志中发现了如下错误:
[error] 15421#0: *16 upstream sent too big header while reading response header from upstream
意思是nginx缓冲区bug造成,网站页面占用缓冲区可能过大。增加缓冲区彻底解决了Nginx 502 Bad Gateway,方法如下:
1
2
3
4
5
6
http {
...
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
...
}
请根据服务器已经网站的情况自行增大上述两个配置项。
7、代理缓冲区设置过小(使用了nginx反向代理的情况)
如果header过大,超出了默认的1k,就会引发upstream sent too big header
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
server {
listen 80;
server_name *.
test
.com;
location / {
###############添加这3行
proxy_buffer_size 64k;
proxy_buffers 32 32k;
proxy_busy_buffers_size 128k;
###############添加这3行
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
............
}
8、默认php-cgi的进程数设置过少
在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改
/usr/local/php/etc/php-fpm.conf 将其中的max_children
的值适当增加。也有可能是
max_requests
的值不够用。需要说明的是这连个配置项占用内存很大,请根据服务器配置进行设置。否则可能起到反效果。
9、其它原因
如果您上网时在您尝试访问的所有网站上都看这个问题,有两种可能
①你的ISP重大设备故障/过载
②有问题的内部互联网连接如您的防火墙无法正常运作。
在种情况下,只有您的ISP可以帮助您。在第二种情况下,你需要解决什么,那是阻止你进入互联网。
如果您只有在部分尝试访问的网站中出现此问题,那很可能是一个问题,即这些网站之一,其设备故障或超载。联系你网站的管理员。
到此这篇关于Nginx 502 bad gateway错误解决的九种方案及原因的文章就介绍到这了,希望对你有所帮助。
转自:微点阅读 https://www.weidianyuedu.com
版权归原作者 xiaoweids 所有, 如有侵权,请联系我们删除。