Http状态码502问题复盘
2024-10-21 14:33:26
问题原因分析:502 bade gateway 一般都是upstream出错,对于PHP,造成502的原因常见的就是脚本执行超过timeout设置时间,或者timeout设置过大,导致PHP进程长时间不能释放。
控制PHP脚本执行时间的配置有两种:
- php.ini文件中max_execution_time(全局配置)
- php-fpm.conf中request_terminate_timeout
如果这两个配置都有设置,那么系统只会执行php-fpm.conf中的设置(优先级php-fpm.conf>php.ini)
下面让服务器报出502的状态码:
- 配置php-fpm.conf中的request_terminate_timeout(该项真正的位置是在www.conf中)为3s ,配置完成后记得重启php-fpm进程(centos7下重启:systemctl restart php-fpm)
- 在项目根目录下写一个test.php 测试脚本代码如下:
sleep(10);
echo '123';
- 浏览器访问http://www.flyeagle.club/test.php 结果如下:
- 查看谷歌浏览器的调试工具显示:
解决方案:
1.适当增大php脚本执行时间,通过修改php.ini或php-fpm.conf来配置
2.从根本原因出发,定位php脚本, 查出真正导致php执行时间过长的原因(循环嵌套过多,数据库死锁)
3.高并发的话考虑php-fpm.conf中的max_children最大子进程数
4.是否启动php-fpm
最新文章
- java web学习总结(十二) -------------------Session
- Shell变量的定义与赋值操作注意事项
- ODCA最佳实践翻译:Architecting Cloud-Aware Applications (一)
- Qt动画效果的实现,QPropertyAnimation
- Could not write to output file 'c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\xx'
- Rank of Tetris HDU--1881
- 图的匹配问题与最大流问题(三)——最大流问题Ford-Fulkerson方法Java实现
- linux 中 svn 服务器搭建 重启
- python基础学习(四)if判断语句
- js尾递归函数
- LeetCode(26): 删除排序数组中的重复项
- Task.WaitAll代替WaitHandle.WaitAll
- 【codeforces 666E】 Forensic Examination
- ps可选颜色
- 【JavaScript】jsp表格页面记录
- ObjectDetection中的一些名词中英文对照
- 关于__name__=='__main__
- 【BZOJ】1578: [Usaco2009 Feb]Stock Market 股票市场
- 经典算法-最长公共子序列(LCS)与最长公共子串(DP)
- EffectiveJava(30) -- 全面解析enum类型
热门文章
- SpringBoot使用jasypt加解密密码
- Nginx 配置 HTTPS SSL
- 【翻译】Flink Table Api &; SQL —— 数据类型
- ubuntu中cmake版本升级
- Appium脚本(2):元素检测
- 【err】tensorflow.python.framework.errors_impl.OutOfRangeError: RandomShuffleQueue
- Jenkins - 构建流水线
- 博客迁移到github了
- Xshell设置运行自动化脚本
- mysql执行计划详解,