前言 502 Bad Gateway 是一种HTTP协议的服务器端错误状态代码,它表示作为网关或代理角色的服务器,从上游服务器(如tomcat、php-fpm)中接收到的响应是无效的。 Gateway (网关)在计算机网
前言 502 Bad Gateway 是一种HTTP协议的服务器端错误状态代码,它表示作为网关或代理角色的服务器,从上游服务器(如tomcat、php-fpm)中接收到的响应是无效的。 Gateway (网关)在计算机网络体系中可以指代不同的设备,502 错误通常不是客户端能够修复的,而是需要由途径的Web服务器或者代理服务器对其进行修复。 总结:php-cgi进程数不够用、php执行时间长、或者是php-cgi进程死掉,都会出现502错误. 502系列错误代码
5XX系列错误代码
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进程是否已经启动
查看是否启动了php-fpm服务; 3、FastCGI worker进程数是否不够运行linux命令:
判断是否接近FastCGI进程,接近配置文件中设置的数值,表明worker进程数设置太少; 4、FastCGI执行时间过长PHP程序执行时间超过了Nginx等待时间,可以适当增加nginx.conf配置文件中FastCGI的timeout时间,根据实际情况调高以下参数值:
5、FastCGI Buffer不够nginx和apache一样,有前端缓冲限制,可以调整缓冲参数
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,方法如下:
请根据服务器已经网站的情况自行增大上述两个配置项。 7、代理缓冲区设置过小(使用了nginx反向代理的情况)如果header过大,超出了默认的1k,就会引发upstream sent too big header
8、默认php-cgi的进程数设置过少在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 将其中的max_children的值适当增加。也有可能是max_requests的值不够用。需要说明的是这连个配置项占用内存很大,请根据服务器配置进行设置。否则可能起到反效果。 9、其它原因如果您上网时在您尝试访问的所有网站上都看这个问题,有两种可能 ①你的ISP重大设备故障/过载 ②有问题的内部互联网连接如您的防火墙无法正常运作。 在种情况下,只有您的ISP可以帮助您。在第二种情况下,你需要解决什么,那是阻止你进入互联网。 如果您只有在部分尝试访问的网站中出现此问题,那很可能是一个问题,即这些网站之一,其设备故障或超载。联系你网站的管理员。 |
2022-08-10
2022-08-26
2022-08-26
2022-03-01
2021-07-11