php - 如果 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 返回一个成功的结果,但我没有找到任何可能的解决方案。
解决方案
推荐阅读
- javascript - 使用 Flask 在单页应用程序中提交表单,无需重新加载
- selenium - 使用 selenium 时 Firefox 的浏览器启动参数是什么?
- google-app-engine - 将简单的 golang 应用程序部署到 appengine 已停止工作
- struct - 为什么 Rust 允许返回当前函数拥有的引用?
- php - Laravel 获取多选下拉值到控制器
- javascript - 为什么带有属性 [name] 的 JS 对象在控制台登录时会变成带有“结果”属性的对象?
- regex - Scala 正则表达式偏函数,正则表达式在偏函数中定义
- flutter - 未收到 Flutter FCM 本地化通知参数
- laravel - Laravel 在另一个测试中模拟了类,就像它存在一样
- angular - ionViewWillEnter,ionViewDidEnter 未触发