zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    POST和GET的区别
    Java设计模式6大原则
    JAVA23种工厂模式
    使用jsp实现用户登录请求
    MVC模式
    使用idea查询数据库内容
    mysql常见错误
    定义外键和建表原则
    CSS制作圆角边框
    2、JS的编写位置
  • 原文地址:https://www.cnblogs.com/lty-fly/p/10867793.html
Copyright © 2011-2022 走看看