飘易博客(作者:Flymorn)
订阅《飘易博客》RSS,第一时间查看最新文章!
飘易首页 | 留言本 | 关于我 | 订阅Feed

LNMPA设置日志后出现502 Bad Gateway错误的解决方法

Author:飘易 Source:飘易
Categories:Linux技术 PostTime:2014-7-11 20:11:01
正 文:
    使用LNmpA配置了虚拟主机后,重启lnmpa 后出现502 Bad Gateway错误

    默认使用vhost.sh脚本添加网站后,在/usr/local/apache/conf/vhost/域名.conf文件里,默认内容如下:
<VirtualHost *:88>
ServerAdmin webmaster@example.com
php_admin_value open_basedir "/storage/wwwroot/huax:/tmp/:/var/tmp/:/proc/"
DocumentRoot "/storage/wwwroot/huax"
ServerName wuxi.huax.com
#ErrorLog "/storage/logs/huax/-error_log"
#CustomLog "logs/-access_log" common
</VirtualHost>

   当我把上面的加红的这行注释去掉,启用错误日志后,再次启动LNmpA时,会出现无法启动apache的情况,这个时候打开网站,提示:502 Bad Gateway。

   使用命令/etc/init.d/httpd status 查看状态也是502 Bad Gateway错误。原因是什么?

   其实很简单,上面我们启用了错误日志,但是注意:/storage/logs/huax/ 这个日志存放的目录必须要存在,没有的话,请见手动建立这个目录,建立这个目录后,我们再次启动lnmpa 就可以了。


LNmpA状态管理命令
LNmpA状态管理: /root/lnmpa {start|stop|reload|restart|kill|status}
Nginx状态管理:/etc/init.d/nginx {start|stop|reload|restart}
MySQL状态管理:/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}
Memcached状态管理:/etc/init.d/memcached {start|stop|restart}
PureFTPd状态管理: /etc/init.d/pureftpd {start|stop|restart|kill|status}
ProFTPd状态管理: /etc/init.d/proftpd {start|stop|restart|reload}
Apache状态管理:/etc/init.d/httpd {start|stop|restart|graceful|graceful-stop|configtest|status}

LNmpA虚拟主机管理
1、LNmpA添加虚拟主机:
/root/vhost.sh

2、删除虚拟主机,ssh执行:
rm /usr/local/nginx/conf/vhost/域名.conf
 同时需要:
rm /usr/local/apache/conf/vhost/域名.conf

升级LNmpA PHP版本
LNmp压缩包解压后的目录里执行:
./upgrade_lnmpa_php.sh


    【补充:】导致lnmp502的其他原因:
第一种原因
LNmp没有安装成功,脚本中某些lib包可能没有安装上,造成php没有编译安装成功。可以看一下是否存在/usr/local/php/sbin/php-fpm ,如果没有肯定没安装成功
解决方法:可以尝试根据lnmp一键安装包中的脚本手动安装一下,看看是什么错误导致的,在网上搜索一下,或者把错误信息发上来。如果实在不会提供按http://lnmp.org/install.html这个安装时的日志文件0.9版是在安装脚本所在目录文件名为lnmp.log,1.0是在/root/下名字为lnmp-install.log(可以用winscp登陆下载日志文件,压缩并上传到本论坛),没有错误信息我们没法说什么原因。

第二种原因:
在php.ini里,eaccelerator配置项一定要放在Zend Optimizer配置之前,否则也可能引起502 Bad Gateway

第三种原因:
在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 将其中的max_children值适当增加。
也有可能是max_requests值不够用。

第四种原因:
php执行超时,修改/usr/local/php/etc/php.ini 将max_execution_time 改为300

第五种原因:
磁盘空间不足,如mysql日志占用大量空间清理一下磁盘上的文件,有部分剩余空间,重启即可恢复。
LNmp一键安装包安装的MySQL默认是开启了日志文件的,如果数据操作比较频繁就会产生大量的日志,在/usr/local/mysql/var/下面产生mysql-bin.0000* 类似的文件,而且一般都在几十MB到几个GB,更甚会吃掉整个硬盘空间,从来导致mysql无法启动或报错。

如何关闭MySQL的日志功能:
删除日志:
执行:/usr/local/mysql/bin/mysql -u root -p
输入密码登录后再执行:reset master;
回车后再输入:quit 退出mysql命令模式。

彻底禁用MySQL日志:修改/etc/my.cnf 文件,找到

log-bin=mysql-bin
binlog_format=mixed

再这两行前面加上#,将其注释掉,再执行/etc/init.d/mysql restart即可。

如果实在想保留日志,可以在/etc/my.cnf里加入expire_logs_days = 10 然后重启mysql,这样10天就会自动清理日志。

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

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

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

九、也可以尝试将unix套接字改成tcp/ip的,修改/usr/local/php/etc/php-fpm.cnf 里设置<value name=“listen_address”>/tmp/nginx.socket</value> 改成<value name=“listen_address”>127.0.0.1:9000</value> ,同时/usr/local/nginx/conf/nginx.conf 及其/usr/local/nginx/conf/vhost/ 下面的虚拟主机配置里的fastcgi_pass  unix:/tmp/php-cgi.sock; 替换为fastcgi_pass  127.0.0.1:9000;  之后重启试试。

十、如果虚拟主机的日志文件过大也可能会造成502问题。
建议定期清空一下虚拟主机的日志文件。

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

十二、如果以上方法都试过,但还有时会出现502错,可以尝试添加502自动重启脚本:http://bbs.vpser.net/thread-1913-1-1.html

【参考】:
1、lnmpa介绍
2、http://lnmp.org/faq/lnmp-Nginx-502-Bad-Gateway.html
作者:飘易
来源:飘易
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。
上一篇:微信公众号推广告主流量主 将成百度竞价的有力竞争对手?
下一篇:CentOS安装rar、unrar解压缩软件的方法
0条评论 “LNMPA设置日志后出现502 Bad Gateway错误的解决方法”
No Comment .
发表评论
名称(*必填)
邮件(选填)
网站(选填)

记住我,下次回复时不用重新输入个人信息
© 2007-2019 飘易博客 Www.Piaoyi.Org 原创文章版权由飘易所有