nginx 502 解决方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx 502 解决方法相关的知识,希望对你有一定的参考价值。
1. 配置错误
因为 nginx 找不到 php-fpm 了或者 socket 文件权限不对,所以报错,一般是 fastcgi_pass 后面的路径配置不当,后面可以是 socket 或者是 ip:port,从 php5.4 版本之后如果使用 socket 方式,默认权限给的比较低,所以需要把监听权限改为 777,对应配置为 listen.mode=0777
2. 资源耗尽
lnmp 架构在处理 php 时,nginx 直接调取后端的 php-fpm 服务,如果 nginx 的请求量偏高,我们又没有给 php-fpm 配置足够的子进程,那么 php-fpm 就会资源耗尽,一旦资源耗尽 nginx 找不到 php-fpm 就会出现 502 错误,解决方案:去调整 php-fpm.conf 中的 pm.max_children 数值,使其增加,但是也不能无限增加,毕竟资源有限,一般 4G 内存机器如果跑 php-fpm 和 nginx ,不跑 mysql 可以设置为 150,8G 为 300 以此类推
3. 除了上面的两种错误还有其他的原因很少有,我们可以借助 nginx 的错误日志来进行排查 vim /usr/local/nginx/logs/nginx_error.log 我们也可以给日志定义级别 vim /usr/local/nginx/conf/nginx.conf 找到 error_log,默认是 crit 最严谨的就行,也可以改成 debug 显示的信息最全面,但是很容易撑爆我们的磁盘。
以上是关于nginx 502 解决方法的主要内容,如果未能解决你的问题,请参考以下文章
nginx+php-fpm出现502 bad gateway错误解决方法
nginx+php测试时显示 502 bad gateway的解决方法