• Http状态码502问题复盘


    问题原因分析:502 bade gateway 一般都是upstream出错,对于PHP,造成502的原因常见的就是脚本执行超过timeout设置时间,或者timeout设置过大,导致PHP进程长时间不能释放。
    控制PHP脚本执行时间的配置有两种:
    1. php.ini文件中max_execution_time(全局配置)
    2. php-fpm.conf中request_terminate_timeout
    如果这两个配置都有设置,那么系统只会执行php-fpm.conf中的设置(优先级php-fpm.conf>php.ini)
     
    下面让服务器报出502的状态码:
    1. 配置php-fpm.conf中的request_terminate_timeout(该项真正的位置是在www.conf中)为3s ,配置完成后记得重启php-fpm进程(centos7下重启:systemctl restart php-fpm)
             
    1. 在项目根目录下写一个test.php 测试脚本代码如下:
    sleep(10);
    echo '123';
    1. 浏览器访问http://www.flyeagle.club/test.php 结果如下:
    2. 查看谷歌浏览器的调试工具显示:
    解决方案:
    1.适当增大php脚本执行时间,通过修改php.ini或php-fpm.conf来配置
    2.从根本原因出发,定位php脚本, 查出真正导致php执行时间过长的原因(循环嵌套过多,数据库死锁)
    3.高并发的话考虑php-fpm.conf中的max_children最大子进程数
    4.是否启动php-fpm

  • 相关阅读:
    排队打饭 sdut 2443【最简单的贪心法应用举例】
    sdut 2445 小学数学
    最终排名 sdut 2446
    sort函数用法
    sdut1598 周游列国【简单模拟题】
    sdut 2441 屠夫与狼
    男生女生分配
    qsort函数详解
    test1.A[【dfs简单题】
    sdut 2449走迷宫【最简单的dfs应用】
  • 原文地址:https://www.cnblogs.com/lty-fly/p/10867793.html
Copyright © 2020-2023  润新知