服务器报错nginx 502 Bad Gateway的原因以及解决办法
网站页面出现502badgateway怎么办?今天我们来分析一下原因和解决办法。
一、nginx 502 Bad Gateway出现的原因:
nginx出现502多数是属于后端的问题,后期就是PHP的问题,在php服务当中,有两个参数非常的重要:max_requestst 和max_children;具体的原因必须要查看日志才可以弄明白!
1:FastCGI进程是否已经启动
ps aux|grep php
查看是否启动了php-fpm服务;
2:FastCGI worker进程数是否不够
运行linux命令:
netstat -anpo | grep “php-cgi” | wc -l
判断是否接近FastCGI进程,接近配置文件中设置的数值,表明worker进程数设置太少;
3.FastCGI执行时间过长
根据实际情况调高以下参数值
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
4:FastCGI Buffer不够
nginx和apache一样,有前端缓冲限制,可以调整缓冲参数
fastcgi_buffer_size 32k;
fastcgi_buffers 8 32k;
5:其它原因
出现502的情况太多了,(例如:你服务器目前的配置支撑不了你现有的业务。我有一个朋友服务器是4核8G的,经常一会出现502 Bad Gatewa,又一会正常。CPU和内存经常爆满接近100%,负载也接近4。最后,配置升级成8核16G后变就变正常了。)远远不只是博主所说的这几种!这几种只能说是最常用的吧!具体的原因一定要去查看服务器的日志;
如何通过查看日志来解决502 Bad Gateway?
二、nginx 502 bad gateway问题怎么解决?
1:查看nginx日志
既然是nginx报错,首先我们就去查看nginx的日志;执行如下命令:
vim /fujieace/nginx/logs/error.log
日志没有报什么错,一切正常,显然不是nginx出的问题;
2:查看php日志
或许不同的环境,路径或许不一同,但是很类似,继续执行linux命令:
vim /fujieace/php/var/log/php-fpm.log
结果发现有很多:如下图
WARNING: [pool www] server reached pm.max_children setting (5), consider raising it;
翻译过来就是:
警告:[池WWW服务器达到pm.max_children设置](5),考虑提高它
我们只需要修改”pm.max_children” 参数即可!
说明:
pm.max_children = 30 //设置子进程最大数值
举例:
每个php-fpm子进程占用20M内存,服务器的内存是1G,除去系统中其他应用占用的内存。
假如系统为300M,剩余700M,700/20 = 35,最多设置35,可以取值稍微低一些为30。
与此同时我们还要调整以下参数
pm.start_servers = 10 //php-fpm启动起始进程数
pm.min_spare_servers = 10 //动态php-fpm的最小空闲进程数
pm.max_spare_servers = 24 //动态php-fpm的最大空闲进程数
pm.max_requests = 500 //所有子进程重启时间
举例:
所有子进程重启时间为300s一次,并发量为50,max_children设置为30;
max_requests = 300*50/30=500;
如果想让进程每隔一小时重生一次,则是3600*50/30=6000。
解决办法:
修改pm.max_children参数具体操作步骤:
如果你是用的一键安装包,请按以下步骤操作:
1、执行vim命令
vim /usr/local/php/etc/php-fpm.conf
pm.max_children = 5
直接修改为
pm.max_children = 20
提示:20这个值仅做参考,可以继续增加,具体的话请根据自己的服务器配置来设置;请按照上面的计算方法来设置;并不是越大越好!只要配置后不再报错就OK!
lnmp一键安装包,如果博主没记错,默认的是pm.max_children = 10;
2、保存退出并重启php-fpm;
pkill -9 php //杀掉php进程
./sbin/php-fpm //重启php服务
如果你是用的手工源码安装php;修改pm.max_children它的路径却不一样;
网站来举例:
vim /fujieace/php/etc/php-fpm.d/fujieace.conf
fujieace.conf是我重名命过的,你安装的时候是修改成什么样子就是什么样子,默认修改的是www.conf;
其它的也没什么不同,和上面操作都是一样的;主要的是要找到php-fpm的配置文件,并修改它的最大子进程个数;
服务器报错nginx 502 Bad Gateway的原因以及解决办法相关推荐
- Python一直报错:SyntaxError: invalid syntax 的原因及解决办法
本篇文章主要讲解 python报错提示 无效语法 SyntaxError: invalid syntax 的原因及解决办法 日期:2022年2月18日 作者:任聪聪 报错现象 python报错如下,但 ...
- U盘安装Windows10系统报错无法打开文件install.wim原因及解决办法
1.现象描述: 毕业后买了一台联想Y7000P笔记本电脑用了一年左右,换了工作后一直用的公司Mac笔记本,就这样联想笔记本闲置几年再次使用时系统更新一下,卡的要死就想重新安装一下系统,还是按之前经验使 ...
- linux下驱动编译报错EEROR: *** [***.ko] undefined! 的错误原因和解决办法
出现错误的原因:在编译驱动出现这种ERROR"xxx函数" [*.ko] undefined!错误一般是xxx函数找不到,或者说没定义,驱动编译的时候相关的函数没有找到! 有以下解 ...
- Zookeeper报错Will not attempt to authenticate using SASL解决办法
Will not attempt to authenticate using SASL (unknown error) 经过查资料,这个问题与zookeeper里面的zoo.cfg配置有关. 在程序填 ...
- 浏览器报错Not allowed to load local resource:的解决办法,与网上大多数都不同,亲测有用!
浏览器报错Not allowed to load local resource:的解决办法,与网上大多数都不同,亲测有用! 起因 报错原因 吐槽 解决办法 参考 起因 因为深度学习用的是pytorch ...
- Navicat 远程连接docker容器中的mysql 报错1251 - Client does not support authentication protocol 解决办法
Navicat 远程连接docker容器中的mysql 报错1251 - Client does not support authentication protocol 解决办法 1).容器中登录my ...
- 【报错解决】linux网络编程报错storage size of ‘serv_addr’ isn’t known解决办法
linux网络编程报错storage size of 'serv_addr' isn't known解决办法 报错如下: server.c:18:21: error: storage size of ...
- [转载] 树莓派4B使用 Adafruit_PCA9685 报错IOError: [Errno 121] Remote I/O error解决办法
参考链接: Python文件I / O 树莓派4B使用 Adafruit_PCA9685 报错IOError: [Errno 121] Remote I/O error解决办法 首先,确保已经下载了p ...
- php数据库报错1046怎么解决,DZ报错MySQL Query Error Errno:1046错误的解决办法
这篇文章主要为大家详细介绍了DZ报错MySQL Query Error Errno:1046错误的解决办法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴. DZ报 ...
最新文章
- 我用Redis实现了一个轻量级的搜索引擎!
- 企业网远程协助的小能手
- 用java调用oracle存储过程总结一
- Apriori算法介绍(Python实现)
- 初学计算几何(四)——初识凸包
- HDU-5249 KPI(STL or 权值线段树)
- CentOS bug修复指令集(阿里云漏洞修复方法)
- Google深度揭秘TPU:一文看懂内部原理,以及为何碾压GPU
- 最邻近插值、双线性插值、三次卷积插值最通俗入门理论解析,论文材料
- WPF数据驱动应用程序上具有通用Lambda表达式的筛选器模式
- boost/container/small_vector.hpp: No such file or directory on Ubuntu 14.04
- Charles使用教程(Mac)
- iconpath 微信小程序_微信小程序 底部导航栏
- PS可以快速批量修改图片尺寸吗?
- Pubg九月十六日服务器维护,绝地求生9月16日更新维护到几点?绝地求生9月16日更新时间公告...
- 教你用Python感受量子霸权
- 安全狗核心产品入选《云原生产品目录》云原生安全实力备受认可!
- 【Java学习之代码学习】 Prog28_打印出杨辉三角形的问题
- 电影院同场不同价 你愿意为“黄金座位”买单吗
- TypeError: Descriptors cannot not be created directly解决