nginx 502 Bad Gateway 错误解决办法

作者:落知秋 | 创建时间: 2023-06-24
Nginx 502 Bad Gateway的含义是请求的PHP-CGI已经执行,但是由于某种原因,没有执行完毕而导致PHP-CGI进程终止。下面我们分情况来说一下各种原因下的解决办法。...
nginx 502 Bad Gateway 错误解决办法

操作方法

fastcgi缓冲区设置过小出现错误 首先要查找nginx的日志文件,目录为/var/log/nginx,在日志中发现了如下错误: 2016/12/17 13:33:47 [error] 15421#0: *16 upstream sent too big header while reading response header from upstream 意思是nginx缓冲区有一个bug造成的,我们网站的页面消耗占用缓冲区可能过大,解决方法如下图

代理缓冲区设置过小 如果你使用的是nginx反向代理,如果header过大,超出了默认的1k,就会引发上述的upstream sent too big header。意思就是nginx把外部请求给后端处理,后端返回的header太大,nginx处理不过来就会导致502。 解决方法如下图:

默认php-cgi的进程数设置过少 在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 将其中的max_children值适当增加。

php执行超时 修改/usr/local/php/etc/php.ini 将max_execution_time 改为300

nginx等待时间超时 部分PHP程序的执行时间超过了Nginx的等待时间,可以适当增加nginx.conf配置文件中FastCGI的timeout时间

https转发配置错误 正确的配置方法如下:

php脚本执行时间过长 将php-fpm.conf的<value name="request_terminate_timeout">0s</value>的0s改成一个时间

点击展开全文

更多推荐