今天来到公司,同事跟我说一台测试服务器出了点问题,该服务器跑的是LNMP环境,上面安装了nginx和php-fpm,昨天的时候他重新安装了php,然后访问网站的时候开始出现

502 Bad Gateway

的错误。

    根据经验,出现502的错误原因很多,一点一点排查吧。

    1、检查网络,没有问题;

    2、还一个会出现502的原因就是使用nginx代后以后的后端问题,因为同时是重新安装了php,那么排查重点应该放到这里来。

    检查php.ini及php-fpm配置文件,仔细检查一遍,没什么问题,因为我们这里基本也没什么大的改动,查看一下nginx的error日志,看到如下内容:

    

2014/07/09 10:41:21 [error] 8985#0: *272 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 229.219.225.148, server: x.test.com, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "x.test.com"

   查看php.ini中关于session的配置session.save_path = "/var/lib/php/session",然后我们cd到这个目录下,查看一下session的权限,我这里的权限是750,所属用户和组分别是root:apache,但是我启动php的用户确实www-data,所以,问题应该是这里了,先将权限改为777,测试,ok!网站正常打开了,那么我们现在将该目录的所有者和属组都改成www-data,将目录权限设置成700,然后重启php-fpm,现在再次检查,ok了,网站正常打开。