解决Nginx+PHP-FPM出现502(Bad Gateway)错误问题

Bad Gateway就是性能或资源不足所导致了,我们浏览网页时常常会碰到一些nginx环境出现这类提醒了,下面我来给大家解决在使用nginx服务器时出来的502(Bad Gateway)错误。

买了一台云服务器后,系统自动给安装了Nginx 1.6 + php 5.3.28 + mysql 5.5

把PHP程序放进云服务器后,首次测试程序访问正常,速度正常

但是把程序放到线上访问后,会逐步发现,访问的PHP页面越来越慢,最后直接出现502 bad gateway问题。

(在php-fpm.conf中,原本就设置了 pm = static 模式,并设置 pm.max_children = 128)

分析:

打开nginx访问日志,访问量并不高,平均每秒也就10个不到的请求IP,所以,按理,这点访问量,不可能导致出现PHP请求过多,出现502的。

打开php-fpm.conf日志,出现很多PHP警告问题,

再调整php-fpm的pm模式为pm = dynamic,

pm.start_servers = 20
 
pm.min_spare_servers = 5
 
pm.max_spare_servers = 35
 
pm.max_requests = 10000
 
 
 
重启php-fpm后,用ps查看php进程:
 
ps -ef |grep -c php-fpm
    22
 
刚开始,访问PHP很快,然后越来越慢,再次查看进程
 
ps -ef |grep -c php-fpm
    28

从日志和进程变化来看,可以断定是PHP程序出现的问题,是PHP请求太多造成的。大概就是PHP页面中,调用了太多PHP的请求。把这个问题告诉开发后,开发解决之后,服务器再没出现502。

从上面配置来看我们是配置了一个请求数量了,当然这个配置不是最佳的哦,如果你还碰到此类问题可以对参数进行调整。

还有一篇:Nginx+PHP-FPM遇到的502报错 http://www.linuxidc.com/Linux/2012-02/54782.htm

LAMP-PHP-fpm服务器配置 http://www.linuxidc.com/Linux/2014-06/103093.htm

Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL http://www.linuxidc.com/Linux/2014-05/102351.htm

高负载PHP-FPM调优 http://www.linuxidc.com/Linux/2013-07/86963.htm

Nginx php-fpm出现502解决办法和调优心得 http://www.linuxidc.com/Linux/2013-01/78566.htm

Nginx+PHP-FPM在两台服务器实现 http://www.linuxidc.com/Linux/2012-11/74001.htm

Ubuntu 10.04配置 nginx + php-fpm 模式 http://www.linuxidc.com/Linux/2012-11/74001p2.htm

Nginx&&PHP-FPM配置及优化指南(上) http://www.linuxidc.com/Linux/2012-07/65732.htm

Nginx 的详细介绍请点这里
Nginx 的下载地址请点这里

本文永久更新链接地址http://www.linuxidc.com/Linux/2014-07/104711.htm

posted on 2016-01-03 12:58  walter371  阅读(973)  评论(0编辑  收藏  举报

导航