PHP-FPM 失败时如何返回 502 错误代码而不是 404

PHP-FPM 失败时如何返回 502 错误代码而不是 404

我的服务器配置如下:Nginx1(proxycache)<---------> Nginx2 <-> PHP-FPM

当 PHP-FPM 因进程关闭而失败(错误连接到 unix:/run/php/php7.0-fpm.sock 失败:连接到上游时没有此文件或目录)或由于已达到 pm.max_children,Nginx2 将返回 404。我查看过我的配置中是否设置了此行为,但它看起来是默认行为。

如果 Nginx1 从 Nginx2 收到 502 错误代码,则将显示页面的过时版本,这就是我希望它返回 502 代码的原因。我知道我可以配置 Nginx 在从上游收到 404 时使用过时版本,但无法将其与文件被删除时的正常 404 区分开来。

答案1

如果您将 php 配置为显示错误,通常会发生这种情况:

 php_admin_value[display_errors] = On

nginx 将错误消息视为有效页面并改变 http 状态代码。

参考:https://stackoverflow.com/questions/11421240/why-does-display-errors-change-the-http-status-code

相关内容