GINX 502 Bad Gateway是因为nginx因为内存不足,php反应缓慢,php进程不足等引起的一类服务器错误,下面为大家做出详解: NGINX 502 Bad Gateway 的发生原因:
1、PHP FastCGI进程数不够用
当网站并发访问巨大时,php fastcgi的进程数不有一定的保障,因为cgi是单线程多进程工作的,也就是说cgi需要处理完一个页面后再继续下一个页面。如果进程数不够,当访问巨大的时候,cgi按排队处理之前的请求,之后的请求只有被放弃。这个时候nginx就会不时的出现502错误。
2、PHP FastCGI的内存不够用
当nginx返回静态页面时,这个问题一般不会出现,因为nginx不需要php cgi的处理而直接返回静态页面。但是当网页需要处理大量的php复杂操作的时候,例如执行api采集,或者采集页面的时候,那对php的要求是相当高的,如果配置给他的内存太少,那很容易就会导致php崩溃。
NGINX 502 Bad Gateway 的解决方法:1、首先判断是不是php fastcgi进程数是否够用。
php.ini中memory_limit设低了会出错,修改了php.ini的memory_limit为64M,重启nginx,发现好了,原来是PHP的内存不足了。
如果以上方法依然不能解决问题,请尝试优化你的php程序,尽量的减少采集和数据库操作,加快其反应速度,有时候往往是因为自己的php程序反应速度太慢造成的。
自动修正nginx502错误
有些时候,502错误是不可避免的,可能是间歇性的,几天或者几周出现一次,这个时候我们需要一个监控程序,每分钟去检测一下系统的可用性,从而最大限度的减少停机时间。
监控502的脚本:
加入一分钟检测一次这个脚本
通过以上的步骤基本上可以了解和解决 NGINX 502 Bad Gateway
(责任编辑:好模板) |