共计 1350 个字符,预计需要花费 4 分钟才能阅读完成。
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 的下载地址 :请点这里