VPS侦探论坛

 找回密码
 注册
查看: 297906|回复: 99

LNMP一键安装包的Nginx 502 Bad Gateway错误可能原因及解决方法

[复制链接]
发表于 2010-4-19 15:29:01 | 显示全部楼层 |阅读模式



第一种原因:安装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.min_spare_servers和pm.max_spare_servers的值适当增加。最大值可以按内存xxMB/2/20 的整数来算(内存以MB为单位进行计算,/ 为除,取整数),最小值可以按内存/2/40 的整数来算,可以少点或多大,可以自己调整运行看看,同时pm.max_children也调整为和pm.max_spare_servers的值一样。
也有可能是max_requests值不够用。

第四种原因:
php执行超时,修改/usr/local/php/etc/php.ini 将max_execution_time 改为300 或直接改成0 不限制,同时还需要修改/usr/local/php/etc/php-fpm.conf 调整request_terminate_timeout的值
再/etc/init.d/php-fpm restart重启使其生效。

第五种原因:
磁盘空间不足,如mysql日志占用大量空间清理一下磁盘上的文件,有部分剩余空间,重启即可恢复。

第六种原因:
查看php-cgi或php-fpm进程是否在运行

第七种原因:
将nginx.conf里的
fastcgi_connect_timeout
fastcgi_send_timeout
fastcgi_read_timeout都调大一点。

第八种可能原因:https://bbs.vpser.net/thread-1654-1-1.html

九、不要按网上找到的教程随便修改配置,网上找到的可能会路径不一样,也可能会导致502或有相关的错误产生,例如网上其他的教程可以使用的是9000端口,而lnmp默认使用socket,你如果按网上的教程设置的端口或socket路径不一样那肯定100% 502无疑。

LNMP默认使用unix套接字,虚拟主机配置文件里 fastcgi_pass参数为unix:/tmp/php-cgi.sock; 需要确保/usr/local/php/etc/php-fpm.cnf 里的设置,php 5.2为<value name=“listen_address”>/tmp/php-cgi.sock</value> 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下<value name=“listen_address”>/tmp/php-cgi.sock</value>替换为<value name=“listen_address”>127.0.0.1:9000</value>  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自动重启脚本:https://bbs.vpser.net/thread-1913-1-1.html

十三、实在找不到原因可以开启slowlog看看慢日志是否有相关有用的信息:https://bbs.vpser.net/viewthread.php?tid=10251&page=1&fromuid=3#pid30582

十四、升级PHP后出现502,可能php没升级成功。
如果是1.0之前的版本升级PHP到5.4或5.5后,可能是因为这个原因:https://bbs.vpser.net/thread-10763-1-1.html

十五、CentOS 6 下,wordpress访问后台、安装wp、安装插件报502错误的解决方法:https://bbs.vpser.net/thread-10767-1-1.html

PS:lnmp相关问题请在论坛反馈,QQ/旺旺上只提供付费代维代装及代购服务。
美国VPS推荐: 遨游主机LinodeLOCVPSKVMLAVPS2EZ搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
发表于 2019-11-26 17:34:56 | 显示全部楼层


留个记号,说不定以后有用
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
发表于 2019-5-7 09:54:25 | 显示全部楼层



昨天安装好了 LNMP1.5 安装wordpress后部分 页面 502.

今天更新了一下 PHP 找寻一圈无果后,用脚本更新了一波PHP ,竟然完美解决了

https://www.php.net/

从5.6 to  PHP 7.1.29
美国VPS推荐: 遨游主机LinodeLOCVPSKVMLAVPS2EZ搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
发表于 2019-4-9 22:36:28 | 显示全部楼层



502, 用户少没啥问题,用户大一点就502.  
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
发表于 2019-1-25 14:26:18 | 显示全部楼层

同样是502,发现 通栏目下,数据库请求数据少点的能打开,多的就是502,怎么办啊 用的是 lnmp

美国VPS、VPN、域名代购:http://shop63846532.taobao.com/

发表于 2018-7-12 14:46:24 | 显示全部楼层

回复 4# 的帖子


按照问题都对照过,是否还要添加location ~ \.*php {
                                                            
                                                               fastcgi_pass  unix:/tmp/php-cgi.sock;
                                                               fastcgi_index index.php;
                                                             include fastcgi.conf;
                                                              include pathinfo.conf;
                                                                  .
                                                                省略...
                                     }
来支持PHP文件?
发表于 2018-5-16 15:40:29 | 显示全部楼层

今天完全502


怎么搞也不行了。。搞上面的方法都试过一。。也重启过了。。就是502 是不是1.4 有问题?之前用1.3没有出现在这样的问题

pm.max_children = 12
pm.start_servers = 2
pm.min_spare_servers = 6
pm.max_spare_servers = 12
request_terminate_timeout = 0
request_slowlog_timeout = 0
slowlog = var/log/slow.log
美国VPS推荐: 遨游主机LinodeLOCVPSKVMLAVPS2EZ搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
发表于 2018-4-25 23:52:03 | 显示全部楼层

网站正常运行偶尔出现502 Bad Gateway,已经处理 ,但出现停十多秒才跳转到其它页面




网站正常运行偶尔出现502 Bad Gateway,已经处理 ,但出现停十多秒才跳转到其它页面 我已经按 军哥的方法操作
第三种原因:
在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 将其中的max_children值适当增加,如果php已升级到5.3.*以上且使用的是dynamic模式,需要调整pm.min_spare_servers和pm.max_spare_servers的值适当增加。最大值可以按内存xxMB/2/20 的整数来算(内存以MB为单位进行计算,/ 为除,取整数),最小值可以按内存/2/40 的整数来算,可以少点或多大,可以自己调整运行看看,同时pm.max_children也调整为和pm.max_spare_servers的值一样。
也有可能是max_requests值不够用。


现在问题又来了, 没有现在502  但是有时候正常, 我是在做 wordpress 网站, 经验在点击各页面 刷新。   有时候点击 停了好久不动,大概是十多秒再转到页面(之前没有按上面第三种 原因改 就会出现 502 Bad Gateway)

我想问还有什么问题改正吗?  我测试出现这种不动的情况 。 图片链接是能正常显示的, 估计是与后台数据库连接 出了问题。 我是用lnmp1.5 的,   是不是应该完全重装?
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
发表于 2017-3-9 09:21:15 | 显示全部楼层

刚装的环境,一直是502,访问不了php文件。



[09-Mar-2017 00:09:25] ERROR: An another FPM instance seems to already listen on /tmp/php-cgi.sock
[09-Mar-2017 00:09:25] ERROR: FPM initialization failed
[09-Mar-2017 09:10:27] NOTICE: Finishing ...
[09-Mar-2017 09:10:27] NOTICE: exiting, bye-bye!
[09-Mar-2017 09:10:28] NOTICE: fpm is running, pid 18980
[09-Mar-2017 09:10:28] NOTICE: ready to handle connections
这是php-fpm日志,军哥帮忙看看什么原因。之前装过一次lnmp,php是5.6的,也是502。然后卸载重新装了一遍,还是同样的问题。


/etc/init.d/php-fpm status
php-fpm (pid 18980) is running...

php-fpm也是能启动的。

php-fpm.conf的配置文件是这样的
[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
log_level = notice

[www]
listen = /tmp/php-cgi.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 60
pm.start_servers = 30
pm.min_spare_servers = 30
pm.max_spare_servers = 60
request_terminate_timeout = 100
request_slowlog_timeout = 0
slowlog = var/log/slow.log

美国VPS、VPN、域名代购:http://shop63846532.taobao.com/

发表于 2016-7-16 16:17:07 | 显示全部楼层



在配置Nginx的http目录访问认证访问目录总是502,在网上找了一圈未果,最后又找了回来,原来是fastcgi_pass的问题,非常感谢。
发表于 2016-5-7 09:11:09 | 显示全部楼层

lnmp1.2安装完毕后打不开phpmyadmin


按照教程安装lnmp1.2,安装完毕后nginx页面能打开,在ip地址后加phpmyadmin打不开phpmyadmin,系统是centos7,附安装日志

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2016-5-7 09:10:24 | 显示全部楼层

lnmp1.2安装完毕后打不开phpmyadmin


按照教程安装lnmp1.2,安装完毕后nginx页面能打开,在ip地址后加phpmyadmin打不开phpmyadmin,系统是centos7,附安装日志

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
发表于 2015-11-28 00:55:35 | 显示全部楼层
从2012年linodo512开始用军哥lnmp,然后digitalocean,然后国内阿里云等,首先感谢一下军哥。
502这个问题一直都存在,之前无非是Mysql日志满了删除掉,可现在,升级到1.2后,发现502、504成了日常作业了。
为此,换了centos,unbuntn等不同系统,尝试了该置顶帖的几乎所有方法(大部分就是改配置重启)——当然这些回答虽然都是实践,但也莫衷一是,但问题还如影随从,每次,莫名其妙就是502.504跳出来,搜索下来,发现有问题的朋友还真不少,真心希望军哥好好理一理,给个比较指导性的建议。。
美国VPS推荐: 遨游主机LinodeLOCVPSKVMLAVPS2EZ搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
 楼主| 发表于 2015-8-3 14:56:03 | 显示全部楼层

回复 87# 的帖子

只有dvd源无法安装,必须联网有网络源才行

美国VPS、VPN、域名代购:http://shop63846532.taobao.com/

发表于 2015-8-3 10:42:14 | 显示全部楼层

Lnmp-

虚拟云上装的64位的CentOS-7-x86_64-DVD-1503-01lnmp1.1-full.tar.gz安装不成功

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|VPS侦探 ( 鲁ICP备16040043号-1 )

GMT+8, 2019-12-15 10:59 , Processed in 0.060738 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表