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

第一种原因

安装lnmp一键安装包时php没安装成功而出现502 Bad Gateway,从0.9开始只要安装成功或失败都就会有提示。没安装成功一般原因是在安装php前,脚本中某些lib包可能没有安装上,造成php没有编译安装成功。可以看一下是否存在/usr/local/php/sbin/php-fpm ,如果没有肯定没安装成功

解决方法:

本方法只限于lnmp没安装成功,只要lnmp安装成功了这一项就没可能。

可以尝试根据lnmp一键安装包中的脚本手动安装一下,看看是什么错误导致的,在网上搜索一下,或者把错误信息发上来。如果实在不会提供按http://lnmp.org/install.html这个安装时的lnmp.log日志文件(可以用winscp登陆下载lnmp.log,压缩并上传到本论坛),没有错误信息我们没法说什么原因。

第二种原因

在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都调大一点。

第八种可能原因

按日志可能是php打开文件数的限制

打开php-fpm.conf 找到 rlimit_files 改成:65535

编辑 /etc/security/limits.conf 加上:

* soft nofile 65535

* hard nofile 65535

编辑/etc/sysctl.conf  底部添加fs.file-max=65535

echo "ulimit -SHn 65535" >> /etc/rc.local

重启试试

不要按网上找到的教程随便修改配置,网上找到的可能会路径不一样,也可能会导致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为/tmp/php-cgi.sock php 5.3及以上版本为listen = /tmp/php-cgi.sock ,同时/usr/local/nginx/conf/nginx.conf 及其/usr/local/nginx/conf/vhost/ 下面的虚拟主机配置里的fastcgi_passunix:/tmp/php-cgi.sock; 不一致就必定502。

有时候unix套接字模式下可能会502,可以尝试改成tcp/ip的方式 php 5.2下/tmp/php-cgi.sock替换为127.0.0.1:9000php 5.3及以上版本listen = /tmp/php-cgi.sock替换为listen = 127.0.0.1:9000,nginx配置文件及虚拟主机配置文件里fastcgi_passunix:/tmp/php-cgi.sock;替换为fastcgi_pass127.0.0.1:9000;之后重启试试。

十、如果虚拟主机的日志文件过大也可能会造成502问题。

建议定期清空一下虚拟主机的日志文件。

十一、有些程序或者程序的主题有死循环或其他非常占用资源的代码也可能会引起502,可以尝试暂时注释掉可能的主机的配置文件,重启看看是否还会502。

十二、如果以上方法都试过,但还有时会出现502错,可以尝试添加502自动重启脚本

Nginx 502 Bad Gateway 自动重启脚本推荐脚本

需要确保系统已安装curl,centos可以执行:yum install curl,debian/ubuntu可以执行:apt-get install curl 

用winscp或vi有或nano在/root目录下创建502.sh 内容如下:

复制内容到剪贴板 代码:#!/bin/bash

# author: licess

# website: http://www.lnmp.org

CheckURL="https://www.vpser.net"

STATUS_CODE=`curl -o /dev/null -m 10 --connect-timeout 10 -s -w %{http_code} $CheckURL`

#echo "$CheckURL Status Code:\t$STATUS_CODE"

if [ "$STATUS_CODE" = "502" ]; then

/etc/init.d/php-fpm restart

fi

chmod +x /root/502.sh 

用crontab 一分钟执行一次。上面的https://www.vpser.net改成你的地址,如果该页面是静态,需换成以php的页面地址。

crontab 教程:https://www.vpser.net/manage/crontab.html

其他的重启脚本,下面这个如果php函数里禁用了shell_exec 将无法使用。

复制内容到剪贴板 代码:

#!/usr/bin/php

<?

$url = 'https://www.vpser.net';

$cmd = '/etc/init.d/php-fpm restart';

for($i = 0; $i < 5; $i ++){

$exec = "curl --connect-timeout 3 -I $url 2>/dev/null";

$res = shell_exec($exec);

if(stripos($res,'502 Bad Gateway') !== false){

shell_exec($cmd);

exit();

}

}

?>

用crontab 一分钟执行一次。 url和cmd根据自己的改。

原理就是用curl获取HTTP头,发现502状态码就执行重启php-fpm的命令。

十三、实在找不到原因可以开启slowlog看看慢日志是否有相关有用的信息

目前给的日志没法分析

你可以编辑/usr/local/php/etc/php-fpm.conf 开启slowlog 慢日志看看

里面有个request_slowlog_timeout参数,后面设置多少秒就是执行超过设置时间的就会被记录下来

日志一般在/usr/local/php/var/log/slow.log,这个配置文件里都有具体的设置选项

十四、升级PHP后出现502,可能php没升级成功。

如果是1.0之前的版本升级PHP到5.4或5.5后,可能是因为这个原因

/usr/local/php/etc/php-fpm.conf里listen下面添加上

listen.backlog = -1

listen.allowed_clients = 127.0.0.1

listen.owner = www

listen.group = www

listen.mode = 0666

重启php-fpm

十五、CentOS 6 下,wordpress访问后台、安装wp、安装插件报502错误的解决方法

解决方法:

Centos 6 64位:

mv /usr/lib64/libsqlite3.so.0.8.6 /usr/lib64/libsqlite3.so.0.8.6.bak

Centos 6 32位:

mv /usr/lib/libsqlite3.so.0.8.6 /usr/lib/libsqlite3.so.0.8.6.bak

//将这个错误文件改名!

重启服务,问题搞定!

专题关注:Linux系统一键安装LNMP网站环境

内容介绍:Linux Shell 编写的可以为CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian/Deepin/Aliyun/ Amazon/ Mint Linux VPS 或独立主机安装 LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/ PHP/Apache)、LAMP(Apache/MySQL/PHP) 生产环境的 Shell 程序。同时提供一些实用的辅助工具如:虚拟主机管理、FTP 用户管理、Nginx、MySQL/MariaDB、PHP 的升级、常用缓存组件 Redis、Xcache 等的安装、重置 MySQL Root 密码、502 自动重启、日志切割、SSH防护DenyHosts/Fail2Ban、备份等许多实用脚本。

人吐槽 人点赞

猜你喜欢

  • 为修复退化严重的珊瑚礁,我们在海底“造林”(图)
  • 中国富人的噩梦降临!本月起,国家正式出手...(图)
  • 51亿美元!Costa咖啡被收购 可口可乐关注传统饮料具体怎么回事
  • 美国9岁男孩因“出柜”遭欺凌 开学4天后自杀(图)
  • 雅加达亚运会今日开幕 看椰城如何点燃亚运圣火(图)
  • 中国说唱歌手这一年:矛盾挣扎的主流之路(组图)
  • 24岁男生娶42岁韩国女星 公公见面就给5个红包(图)
  • 纪凌尘出轨模特?女方:只是一般朋友-出轨,模特,两人
  • 周杰伦重现《不能说的秘密》经典场面 四手联弹勾回忆-周杰伦,弹琴,都是
  • 周杰伦和妈妈穿同款动作妖娆 母子表情神同步-周杰伦,妈妈,母子
  • 周杰伦和妈妈穿同款紫色长裙 搭配黑靴少女心爆棚-周杰伦,妈妈,裙子
  • 《明日之子》赛制有问题?华晨宇:怎么给我搞这出-赛制,赛道,之子
  • 学员自创曲唱了一半!不淡定的鹿晗、罗志祥、李荣浩跟着吹口哨?-儿歌,学员,一首
  • 六个小孩抚养权未到手 安吉丽娜朱莉曝领养第七个-领养,两人,小孩
  • 木村拓哉率领长濑继续送暖 女儿光希晒新照秀美腿-木村,冈山,木村拓哉
  • 《延禧攻略》璎珞找到杀害姐姐的仇人,虽为太妃但依然将她杀死!-璎珞,姐姐,自己的
  • 《延禧攻略》高贵妃被粪泼死,裕太妃被雷劈死,都没有她死的惨-璎珞,雷劈,贵妃
  • 黄子韬演唱会落幕,被提及荧光棒事件,网友吐槽:套路太深-回国,发展,韩国
  • 明星综艺真人秀天价片酬前十,她拿6000万被称作最不值-一集,笑傲江湖,片酬
  • 刘畊宏晒儿子留长发近照,网友误以为是小泡芙-头发,长得,都是
  • 导演怒斥鹿晗为陪关晓彤放鸽子:没艺德看你走多远-导演,录制,节目
  • 人民网又批吴亦凡:搞流量,做声势,从不接受大众点评!-流量,亦凡,人民网
  • 林更新否认已婚 斥曝光病例者:辣鸡!很快你会回家-病例,更新,已婚
  • 《好声音》调戏导师又对学员放狠话,谁留意周杰伦脸色难看-周杰伦,学员,战队
  • 影视行业机构集体发声 联手抵制天价片酬-片酬,影视,天价
  • 《天盛长歌》今日首播,倪妮荧屏首秀受期待-的是,期待,首播
  • 上百种中国造的降压药含致癌物 全球紧急召回(组图)
  • 跟德国比中国的下水道真的烂透了?真相在这里(组图)
  • 比较中美幼儿园入园差异:正是两国国情的缩影(图)
  • 十年过去了:北京奥运究竟给中国带来了什么(组图)
  • 侄女,老公,结婚,我就,都是,上大学的侄女到我家玩,我让老公陪她,3天后她打电话劝我离婚
  • 不爱,的是,一段,和你,对你,男生不爱你会有的几个表现!每一条都很扎心!
  • 生殖器,男子,女子,出轨,剪断,女子因无法忍受丈夫出轨深夜将其生殖器剪断
  • 相亲,父母,之时,男孩,对象,故事:父母带30岁女儿去相亲,男孩女孩共说6个字,相亲变成订婚
  • 都是,那一刻,他说,一个,陪她,分手,不是因为不爱了,而是真的失望了
  • 女人,男人,牛肉面,媳妇儿,看着,丈夫突然半夜带妻子去吃牛肉面,在面馆大喊一番话后妻子泪光闪烁
  • 二十年,这就是,十个月,一辈子,人说,男人的一生和女人的一生——说的太好了!
  • 梦见,预示,会有,戒指,梦见自己,周公解梦:梦见这几种场景,预示会实现愿望,官运亨通,完美爱情
  • 云南小学多名女生遭教师猥亵 “上次床给5块”(图)
  • 大逆转!中国癌末爷爷探亲遭遣返 终获准回美(组图)
  • 川普誓言:一劳永逸结束移民危机 虚假的悲情故事(图)
  • 川普拟在湾区建帐篷城收容非法移民 当地人急了(图)
  • 川普任上入籍申请大积压 民主党议员连署促加速(图)
  • 台湾最甜美的姑娘,她的穿着睡衣的画面太美了(图)
  • 陆媒总编:某些关键领域 中国与西方差距在扩大(组图)
  • 东京奥运盛会变人间惨剧?这是日媒描绘的灾难图(图)
  • 绝杀逆转 日本球迷崩溃痛苦 赛后依旧清理垃圾(组图)
  • 三观碎成渣 台湾电视剧竟如此美化日本侵略者!(图)
  • 现女友前夫告他通奸 德国前总理五婚路波折(图)
  • 揭天价防癌旅游诈骗 黑中介:客户最好不懂英文(图)
  • 还原“凤凰号”沉船最后一日 这5大疑问仍然待解(图)
  • 无腿古稀老人登顶珠峰!你还有什么理由不努力(组图)
  • 和13岁儿子嘴对嘴同床任摸胸 女星晒母爱惹争议(图)
  • 老婆前脚回国,他后脚性侵被捕,这是被算计了?(组图)
  • 莫迪发两条微博感谢习近平 两人在武汉湖边散步(组图)
  • 情侣聊天记录曝光:你精于算计的样子 真的很丑!(图)
  • 周立波无罪释放背后:检方的表现很反常(组图)
  • 中日韩俄看川金会:文在寅笑了 王毅强调中国作用(图)
  • 实拍性爱机器人!与真人几乎已没有区别(组图)
  • Ubuntu系统iptables规则的查看和清除
  • Linux-CentOS5/6启动流程
  • 每天一个linux命令(1):find命令之exec
  • linux I/O多路复用机制之select使用及源码解析
  • linux下删除文件或文件夹的命令
  • LINUX(redhat)学习之配置IPv6网络
  • VMware 上安装linux配置02
  • linux---fork
  • linux 颜色输出
  • windows下面还有Linux下面安装Python包
  • Archlinux Win10双系统
  • Linux 2.6内核配置说明(File systems文件系统)
  • 如何查看Linux是32位还是64位
  • linux windows 10 子系统
  • linux指令积累之(一)
  • 快乐的Linux命令行
  • 设置Vim编辑器里Tab的长度
  • 04 shell编程之循环语句
  • Linux进程间通信方式
  • Linux 安装mysql
  • MySQL/MariaDB中游标的使用
  • linux获取TCP连接数
  • 从零开始搭建Linux Java开发环境(一)SSH和新建远程连接用户
  • 10.在Linux字符界面中获取天气预报
  • Linux之make的用法讲解
  • Linux 学习笔记-route
  • Linux远程连接
  • 关于问题 mysql"Access denied for user root@localhost" 的解决办法
  • mysql的安装
  • mysql的安装
  • mysql创建索引
  • mysql可视化工具选型
  • MYSQL表连接(十)Alias
  • mysql transaction 事务 概念和用法学习
  • Linux下Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ mysql service
  • 人才招聘网站系统建设,兼职网站开发,找工作网站制作
  • php超过10000显示为万(**w)
  • php升级
  • PHP CURL GET/POST简单使用
  • phpexcel 类如何上传excel文件,遇到超大的文件就会暴露许多问题
  • PHP PhpQrcodes 生成带有颜色二维码
  • PHP基础知识笔记(面向对象)
  • 全面了解 Nginx 到底能做什么-转载
  • Ubuntu 17.10上安装LEMP环境(Nginx,MariaDB,PHP7.1)
  • 如何在Ubuntu 17.10和Ubuntu 16.04 LTS上安装Linux Kernel 4.16
  • Linux(Ubuntu)下安装搜狗拼音输入法
  • FileHippo 找寻旧版软体的好地方,免费下载软体各种旧版本
  • 新的不一定好!OldVersion 免费软体下载集散地,收藏各种软体旧版本
  • 常用函数-trackback_url_list()
  • 常用函数-do_robots()
  • 男人软屌时到底该怎幺办 五件事情打破尴尬气氛让他重拾信心
  • 谜片如何误导爱爱
  • LNMP下FTP服务器的安装和使用(Pureftpd和Proftpd)
  • lnmp常见问题,MySQL的root默认密码是什么?网站目录及各种文件都分布在哪?
  • LNMP DiscuzX 通信失败或通过Socket连接SMTP无法发送邮件或wordpress Akismet 无法工作,wordpress主题不显示的问题的解决方法
  • Nginx 限制单个IP的并发连接数及对每个连接速度(限速)
  • LNMP状态管理命令lnmp {start|stop|reload|restart|kill|status}{httpd|mysql|mariadb|pureftpd} {start|stop|rel
  • LNMP安装了哪些软件?安装目录在哪?Nginx、MySQL/MariaDB、PHP、phpMyAdmin、Zend Optimizer/Zend GuardLoader
  • LNMP 1.2.1.3.1.4.1.5缓存加速类扩展(xcache/Redis/memcached/eAccelerator)、imageMagick、ionCube安装教程
  • putty命令LNMP添加、删除虚拟主机、.user.ini、添加ssl证书开启https、伪静态使用教程(图文)
  • LNMP安装时经常掉线怎么办?安装lnmp前请先运行screen,SSH远程会话管理工具 - screen使用教程
  • LNMP一键安装包是什么?
  • i9220最详细最安全获取安卓手机ROOT权限图文教程(2.3~4.0通用)
  • CentOS系统资源常用命令
  • CentOS自动删除n天前日志命令
  • CentOS 6部署Nginx + PHP5 Web服务器
  • digitalocean vultr一键安装最新内核并开启Google BBR 脚本
  • Linux 命令 scp 对拷文件夹 和 文件夹下的所有文件 对拷文件并重命名
  • wordpress Let&#8217;sEncrypt 免费SSL证书实现全站https访问
  • 记录Linux CentOS中cp复制强制覆盖拷贝的命令 /cp a /test/a cp: omitting directory `XXX&#8217;
  • 安全删除 /usr/local/mysql/var/ 几十G mysql-bin.0000*日志文件
  • Centos Linux 命令du -h &#8211;max-depth=统计文件夹占用空间大小
  • L2TP/IPSec一键安装脚本(实测有效-转载)
  • 宝塔nginx配置wordpress伪静态的2种方法
  • nginx 自动识别手机端和pc端 访问不同的根目录 lnmp
  • 发表评论

    用户名: 密码:
    验证码: 匿名发表

    你可以使用这些语言

    查看评论:LNMP一键安装包的Nginx 502 Bad Gateway 十五种错误可能原因及解决方法