nginx+php超时,什么情况下会产生504状态码?
发布于 作者:苏南大叔 来源:程序如此灵动~

猜测一下,状态码504 Gateway Time-out
在什么时候会产生?依然是超时time out
,依然是nignx+php
。依然是不同的环境下,不同的运行结果。这就是本文的主要内容。
苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码感想感悟。centos@7.9.2009,
nginx@1.20.2和
php-fpm@8.3.1。值得注意的是:
php-fpm只存在于非
windows系统下,
windows系统下的是
php-cgi`,两者有着运行机制上的不同。
前文回顾
本文和下面这篇《nginx产生404状态码》文章,紧密相关。
目前的结论是:
nginx
在win10
下(phpstudy
),脚本超时产生的就是404
状态码。- 在
centos
下(bt panel
),脚本超时就是504
状态码。
龙套代码
依然使用这款好用的测试代码:
$t = intval($_GET["t"]);
sleep($t);
echo "sleep {$t} 秒";
测试设置
实际上为了模拟这个nginx
的504 timeout
状态,也是比较简单的。设置nginx
的fastcgi_read_timeout
选项即可。例如:
fastcgi_read_timeout 5;
这个就是5
秒没有读取到php
的输出内容的话,就显示超时。参考截图:
结语
更多苏南大叔的nginx
设置相关经验文章,请参考:


