PHP-如何解决Nginx+PHP(FastCGI)环境下经常出现的502 Bad Gateway错误?

发布于 2017-01-21 11:45:17 字数 83 浏览 1348 评论 4

运行在Nginx+PHP(FastCGI)环境下的web项目总会遇到502 Bad Gateway错误提示,这种错误一般是如何产生的呢?有什么解决之道?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

偏爱自由 2017-08-15 16:42:29

nginx出现502的原因很多。例如:fastcgi进程数大于nginx设置数,连接数太多(服务器压力太大),php脚本处理时间过长。
一般出现502大多是服务器扛不住压力,和nginx参数配置关系不大(因为大多配置nginx的教程很多,都很全)。
我们的用户中心的服务器监控经常报502,服务器压力站很大的可能性。有可能是以前的老程序逻辑不够严谨,导致用户量大的时候,服务器扛不住。

清晨说ぺ晚安 2017-03-29 05:49:44

1.FastCGI worker进程数是否不够
运行 netstat -anpo | grep “php-cgi” | wc -l 判断是否接近FastCGI进程,接近配置文件中设置的数值,表明worker进程数设置太少

2.FastCGI执行时间过长
根据实际情况调高以下参数值
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;

3.FastCGI Buffer不够
fastcgi_buffer_size 32k;
fastcgi_buffers 8 32k;

4.ulimit -HSn 60000 开大点

5.优化程序,特别是执行时间长的和调用频繁的

夜无邪 2017-03-12 21:12:49

在我们项目中,配置一般都已经固定好,出现经常是由于负载引起502错误。
当出现502错误时,网站的动态访问都会是502,静态页面还是可以访问的。所以也可以做一些监控来报警这类错误的产生。
负载有可能以下问题造成:1.程序的问题。2.数据库负载的问题。 大多数情况实际上还是数据库负载引起的,优化网站的结构,采用比较高效的缓存方式,来避免数据库的瓶颈,从而来避免502错误的出现。

偏爱自由 2017-01-27 20:47:22

将large_client_header_buffers调大一下试试,web服务器的进程数是不是开的过少,看下mysql的慢查询日志看看是哪些sql执行较慢,导致某些页面执行速度过慢,看下web日志是哪些页面报的502错误优化下代码,经常访问的资源缓存下。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文