1概述
LNMP架构下 发生502 bad gateway 一般有两种情况
1,没有可用的php-fpm 没有可用的worker进程
2,脚本执行时间超过了 php-fpm request_terminate_timeout 设置的值 这时 worker进程会被kill 或者 request_terminate_timeout 设置的值过大 导致整个worker进程长时间工作不能释放 没有空闲的进程来处理请求从而报502
我们知道控制php脚本执行时间 有两个值 一个是php.ini 的 max_execution_time 和php-fpm 的request_terminate_timeout
我们可以分析下 超过最大请求时间报502错误的原因
2环境
为了测试的方便 可以将nginx 设置一个进程 php-fpm 设置 pm = static 模式 pm.max_children=1 request_terminate_timeout = 3
请求本地localhost/index.php 文件类容为sleep(20);
浏览器执行ocalhost/index.php