php 502状态码,Nginx502状态码处理
问题描述
最近偶然收到报警邮件,Nginx 502状态码
环境是Nginx+php-fpm 配置 8核16G
yds.png
分析处理:
根据经验应该是php-fpm原因
(1) php-fpm进程挂掉起不来
(2) php-fpm的9000端口不通
(3) 请求过多,php-fpm处理队列
登录后台服务器查看php-fpm进程和端口等
1. php-fpm 进程存在
# ps auxf | grep 'php-fpm: master' |grep -v grep
root 31590 0.0 0.0 316140 9348 ? Ss 14:26 0:00 php-fpm: master process (/usr/local/etc/php-fpm.conf)
2. 9000端口是通的
# telnet 127.0.0.1 9000
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
3. php-fpm 进程只有12个
# ps auxf | grep 'php-fpm' | wc -l
12
由上命令结果看出php-fpm进程较少,先增加php-fpm,配置文件php-fpm.conf
pm = dynamic
pm.max_children = 600
pm.start_servers = 300
pm.min_spare_servers = 300
pm.max_spare_servers = 500
pm.max_requests = 6000
修改后重启php-fpm,完美收工。
过一段时间后又偶然收到后台报警502。
马上登录后台服务器查询进程和端口,都正常。
开始查看日志。
(1) 查看nginx访问日志502
nginx-access.png
(2) 查看nginx error日志
查看到connect() failed (111: Connection refused) while connecting to upstream
应该是php-fpm问题
nginx-error.png
(3) 查看php-error.log日志
看到php-fpm每分钟都在重启
NOTICE: Finishing ...
NOTICE: exiting, bye-bye!
php-error.png
(4) 去查看计划任务。有个脚本每分钟执行一次。
内容是:
(1) 判断php-fpm进程是否存在,如不存在,则重新启动php-fpm;
(2) 判断剩余内存,如果剩余内存<1600M,则重新启动php-fpm;
(5) 临时停止这个脚本后,php-fpm未重启过。
(6) free -m 查看内存还剩200M,所以计划任务脚本会重启php-fpm;但是重启php-fpm后buffer/cache未释放。所以每分钟会重启php-fpm;
在脚本中添加手动释放内存,恢复正常;
php_restart (){
mem=`free -m|grep Mem|awk '{print $4}'`
if [ ${mem} -lt 1600 ];then
echo "3" > /proc/sys/vm/drop_caches
/etc/init.d/php-fpm restart
echo `date` >> /tmp/phprestart.log
fi
}
php 502状态码,Nginx502状态码处理相关推荐
- 状态码202_HTTP状态码大全
1xx消息 这一类型状态码代表请求已被接收,需要继续处理.这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束. 100 客户端应当继续发送请求.这个临时响应是用来通知客户端,它的部分 ...
- python状态码409_HTTP状态码
HTTP各种相应的状态码 HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码.它由 RFC 2616 规范定义的,并得到RFC 2518.RFC 28 ...
- 302状态码_HTTP状态码status code详解
http状态码可以让我很方便的了解到请求的所在状态,所以很有必要总结一下,对今后的学习也是很有帮助的. 什么是HTTP状态码 HTTP状态码的作用是:web服务器用来告诉客户端,发生了什么事. 状态码 ...
- python网页查询然后返回结果_python(30) 获取网页返回的状态码,状态码对应问题查询...
获取访问网页返回的状态码 html = requests.get(Url) respon= html.status_code 以下内容来自于维基百科:点击查看网页 1xx消息 这一类型的状态码,代表请 ...
- HTTP状态码(响应码)
前言 对于一些刚刚入门的网安的小白来说,可能并不太能了解状态码的作用.这也是我前期学习时的一个状态.当你参加过HW之类的一些网安活动或者参加工作后,你会发现你经常要和响应码打交道.你在使用安全设备查看 ...
- ucosiii源码_UCOSIII任务的基本状态与转换状态
点击上方公众号名称关注,获得更多内容 ✎ 编 者 悟 语 每次转换的不适中可能会孕育出新的格局. 文 章 导 读 今天给大家整理汇总了下UCOSIII任务的基本状态与转换状态相关的内容,希望对小伙伴们 ...
- hox 状态管理库源码解析
文章目录 hox是什么 hox实现状态共享的方式 基本使用 全局状态共享 局部状态共享 源码解析 index.js 入口文件 coantainer.tsx 管理每个hook 全局状态共享的实现 Hox ...
- 微信支付:支付流程分析、微信扫码支付(HttpClient)、微信支付二维码生成、检测支付状态、订单状态操作准备工作、支付信息回调、MQ处理支付回调状态、定时处理订单状态
微信支付 微信支付开发的整体思路 生成支付二维码 查询支付状态(微信的服务器) 实现订单状态的修改.删除订单 支付状态回查->微信服务器将支付状态返回给支付微服务 MQ处理支付回调状态 Rabb ...
- 页面HTTP状态查询“返回状态码:200 ”是什么意思?(网页响应状态码)
200是响应正常的意思,这个是服务器返回页面的响应头信息.里面bai的Transfer-Encoding: chunked,意思是使用了提前不可知数据长度的传输方式,需要浏览器继续读取响应,接下来才知 ...
最新文章
- 国内丨中国人工智能标准化体系建设提速
- 实验三:实现一个大素数生成算法
- 使用NeMo快速入门NLP、实现机器翻译任务,英伟达专家实战讲解,内附代码
- Android移动开发之【Android实战项目】DAY10-App端耗流量场景问题及减少消耗办法
- 初学者先学python语音好吗_献给Python初学者 零基础学习Python能学会吗
- Java中 读-写 文件 BufferedReader BufferedWriter
- priority_queue优先队列
- pycharm在ubuntu xfce下面Alt+insert快捷键冲突解决
- t’触发器真值表和状态方程_清写出触发器按逻辑特性的分类;写出T触发器的状态方程。...
- 斜度符号标注_几何作图之斜度和锥度
- 【Python】提升Python程序性能的好习惯
- 无人驾驶之入门(车联网和5G)
- 梯度下降(二)--机器学习
- android 音效下载地址,V4A+Dolby Atmos安卓全局音效
- 计算流体力学c语言教程,计算流体力学教程
- C++ primer 个人学习总结
- 【转】PIC单片机的 程序存储器,数据存储器,EEPROM区别
- 芯片解密MC9S08DZ16 飞思卡尔系列芯片解密
- 一文讲透商业智能BI 到底是什么[转]
- Mac下cmake使用
热门文章
- HTML DOM教程 37-HTML DOM Meta 对象
- 程序员的算法课(10)-字符串排序算法实例(纯代码)
- 使用jRebel在IntelliJ IDEA 中进行 Java 热部署
- vs studio2015导入本地项目_Visual Studio2019自定义项目模板
- android 自定义加载动画效果,Android 自定义View修炼-自定义加载进度动画LoadingImageView...
- ros云服务器_减少运维工作量,如何通过 ROS 轻松实现资源编排新方式
- 前端性能优化之 gzip+cache-control
- jquery slideDown slideUp 对于table无效
- OK335xS dhcpcd porting
- 探索C#之6.0语法糖剖析