欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > Nginx:502 Bad Gateway 错误的原因及解决方法

Nginx:502 Bad Gateway 错误的原因及解决方法

2024/10/24 7:21:50 来源:https://blog.csdn.net/yao_guai/article/details/140458127  浏览:    关键词:Nginx:502 Bad Gateway 错误的原因及解决方法

我们今天来介绍几种出现502错误情况。

一、fastcgi缓冲区设置过小 

出现错误,首先要查找nginx的日志文件,目录为/var/log/nginx,在日志中发现了如下错误。

2013/01/17 13:33:47 [error] 15421#0: *16 upstream sent too big header while reading response header from upstream

大意是nginx缓冲区有一个bug造成的,我们网站的页面消耗占用缓冲区可能过大。

http {...fastcgi_buffers 8 16k;fastcgi_buffer_size 32k;...
}

请根据服务器网站的情况自行增大上述两个配置项。

二、代理缓冲区设置过小 

如果你使用的是nginx反向代理,如果header过大,超出了默认的1k,就会引发上述的upstream sent too big header (说白了就是nginx把外部请求给后端处理,后端返回的header太大,nginx处理不过来就会导致502)

我们直接到nginx配置域名中配置

location / {listen 80;server_name www.kingbal.com;proxy _buffer_size 64k;proxy _buffers 32 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;......
}

三、默认php-cgi的进程数设置过少 

在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改 /usr/local/php/etc/php-fpm.conf 将其中的 max_children 值适当增加。也有可能是max_requests值不够用。需要说明的是这连个配置项占用内存很大,请根据服务器配置进行设置

四、php执行超时 
vim /usr/local/php/etc/php.inimax_execution_time : 300

五、nginx等待时间超时 

部分php程序的执行时间超过了Nginx的等待时间,可以适当增加FastCGI的timeout时间

vim /etc/nginx/nginx.confhttp { fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; ......
}

以上路径请根据自己安装的nginx根目录进行修改

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com