Nginx 502 Bad Gateway错误可能原因及解决方法
作者:bulang发布时间:2024-08-21 08:39分类:网站搭建浏览:204评论:1
第一种原因:第一种原因:安装lnmp一键安装包时php没安装成功而出现502 Bad Gateway,从0.9开始只要安装成功或失败都就会有提示。没安装成功一般原因是在安装php前,脚本中某些lib包可能没有安装上,造成php没有编译安装成功。可以看一下是否存在/usr/local/php/sbin/php-fpm ,如果没有肯定没安装成功。
解决方法:
可以尝试根据lnmp一键安装包中的脚本手动安装一下,看看是什么错误导致的,在网上搜索一下,或者把错误信息发上来。如果实在不会提供按http://lnmp.org/install.html这个安装时的lnmp.log日志文件(可以用winscp登陆下载lnmp.log,压缩并上传到本论坛),没有错误信息我们没法说什么原因。本方法只限于lnmp没安装成功,只要lnmp安装成功了这一项就没可能。
第二种原因:
在php.ini里,eaccelerator配置项一定要放在Zend Optimizer配置之前,否则也可能引起502 Bad Gateway。php一些模块之间也可能会造成502,如Zend GuardLoader与Opcache,ioncube与Zend GuardLoader等,一般可以通过注释掉一个然后重启php-fpm,然后看是否还502进行排除。
第三种原因:
在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 将其中的max_children值适当增加,如果php已升级到5.3.*以上且使用的是dynamic模式,需要调整pm.max_spare_servers参数的值。
也有可能是max_requests值不够用。
第四种原因:
php执行超时,修改/usr/local/php/etc/php.ini 将max_execution_time 改为300
第五种原因:
磁盘空间不足,如mysql日志占用大量空间清理一下磁盘上的文件,有部分剩余空间,重启即可恢复。
第六种原因:
查看php-cgi或php-fpm进程是否在运行
第七种原因:
将nginx.conf里的
fastcgi_connect_timeout
fastcgi_send_timeout
fastcgi_read_timeout都调大一点。
第八种可能原因:http://bbs.lnmp.com/thread-1654-1-1.html
九、有时候也可能是自己修改过下面2处的配置,导致nginx配置文件里的设置和php-fpm上的设置不一样也会502。如果使用unix套接字,修改/usr/local/php/etc/php-fpm.cnf 里设置,php 5.2为
/tmp/php-cgi.sock
php 5.3及以上版本为listen = /tmp/php-cgi.sock ,同时/usr/local/nginx/conf/nginx.conf 及其/usr/local/nginx/conf/vhost/ 下面的虚拟主机配置里的fastcgi_pass unix:/tmp/php-cgi.sock; 不一致就必定502。
有时候unix套接字模式下可能会502,可以尝试改成tcp/ip的方式 php 5.2下
/tmp/php-cgi.sock
替换为
127.0.0.1:9000
php 5.3及以上版本listen = /tmp/php-cgi.sock替换为listen = 127.0.0.1:9000,nginx配置文件及虚拟主机配置文件里fastcgi_pass unix:/tmp/php-cgi.sock;替换为fastcgi_pass 127.0.0.1:9000; 之后重启试试。
还需要补充的就是不要按网上找到的教程随便修改配置,网上找到的可能会路径不一样,也可能会导致502或有相关的错误产生。
十、如果虚拟主机的日志文件过大也可能会造成502问题。
建议定期清空一下虚拟主机的日志文件。
十一、有些程序或者程序的主题有死循环或其他非常占用资源的代码也可能会引起502,可以尝试暂时注释掉可能的主机的配置文件,重启看看是否还会502。
十二、如果以上方法都试过,但还有时会出现502错,可以尝试添加502自动重启脚本:http://bbs.lnmp.com/thread-1913-1-1.html
十三、实在找不到原因可以开启slowlog看看慢日志是否有相关有用的信息:http://bbs.lnmp.com/viewthread.php?tid=10251&page=1&fromuid=3#pid30582
十四、升级PHP后出现502,可能php没升级成功。
如果是1.0之前的版本升级PHP到5.4或5.5后,可能是因为这个原因:http://bbs.lnmp.com/thread-10763-1-1.html
十五、CentOS 6 下,wordpress访问后台、安装wp、安装插件报502错误的解决方法:http://bbs.lnmp.com/thread-10767-1-1.html
你 发表评论:
欢迎- 文章归档
-
- 2024年11月 (9)
- 2024年10月 (8)
- 2024年9月 (4)
- 2024年8月 (7)
- 2024年7月 (4)
- 2024年6月 (9)
- 2024年5月 (2)
- 2024年4月 (2)
- 2024年3月 (1)
- 2024年1月 (1)
- 2023年12月 (5)
- 2023年11月 (30)
- 2023年9月 (2)
- 2023年8月 (6)
- 2023年7月 (26)
- 2023年6月 (45)
- 2023年5月 (20)
- 2023年4月 (66)
- 2023年3月 (32)
- 2023年2月 (27)
- 2023年1月 (24)
- 2022年12月 (95)
- 2022年11月 (48)
- 2022年10月 (59)
- 2022年9月 (81)
- 2022年8月 (186)
- 2022年7月 (394)
- 2022年6月 (242)
- 2022年5月 (1)
- 2021年6月 (1)
- 2020年8月 (1)
- 2008年11月 (1)
已有1位网友发表了看法:
bulang 评论于 2024-08-21 14:43:07 回复
错误提示如上,百度搜到的答案为修改php-fpm.conf文件修改配置。
所以我们先来找下php-fpm.conf配置文件
find / -name php-fpm.conf
然后使用vi命令编辑搜索到的文件
vi /usr/local/php/etc/php-fpm.conf
打开文件后按照百度与谷歌搜到的资料说要去除以下以下这几行的 ; 号
;pm.start_servers=20
;pm.min_spare_servers=5
;pm.max_spare_servers=35
不过我安装的一键包好像已经配置了这个文件,提前将;去除了,不过我依然无法启动php-fpm,然后我将值修改为了:
pm.start_servers = 5
pm.min_spare_servers = 4
pm.max_spare_servers = 8
然后:wq保存文件 启动php-fpm 这时,php-fpm正常启动。