如果 PHP 崩溃或调试停止,Nginx + PHP-FPM 如何返回 5xx 状态码?

问题描述

我使用 PHP-FPM 运行 Nginx,配置非常普通,没什么特别的:

        location / {
            try_files $uri @fpm;
        }

        location @fpm {
            fastcgi_split_path_info ^(.+\.PHP)(/.*)$;
            include fastcgi_params;
            fastcgi_pass fpm:9000;
            fastcgi_index index.PHP;
            fastcgi_param SCRIPT_FILENAME /var/www/html/app/public/index.PHP;
            fastcgi_param SCRIPT_NAME index.PHP;
            fastcgi_param APPLICATION_ENV dev;
        }

PHP-FPM 在具有PHP-FPM 配置(当前为 7.3 版)的容器中运行。

我发现如果 PHP 脚本在没有返回任何响应的情况下意外崩溃,或者当我使用 XDebug 调试脚本并停止调试杀死请求(直到结束才恢复运行)时,Nginx 会返回成功的 HTTP 响应代码 (200) 并带有空响应。在这种情况下如何让它返回 5xx 范围的错误代码?可能问题在于 PHP-FPM 返回了一个成功的结果,但我没有找到任何可能的解决方案。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)