fastcgi_catch_stderr
'fastcgi_catch_stderr' 指令控制 NGINX 是否捕获来自 FastCGI 应用程序的标准错误输出。 — NGINX HTTP Core
fastcgi_catch_stderr
httpserverlocation
语法fastcgi_catch_stderr on | off;
默认值off
上下文http, server, location
模块NGINX HTTP Core
参数1
说明
'fastcgi_catch_stderr' 指令在 'http'、'server' 和 'location' 等上下文中使用,用于管理由 FastCGI 应用程序产生的错误消息的处理。启用时,任何由 FastCGI 应用程序发送到标准错误的消息都会被 NGINX 捕获并记录,从而便于调试,并通过 NGINX 错误日志直接查看应用问题的情况。默认情况下,该指令设置为 off,这意味着除非显式开启,否则 NGINX 只捕获标准输出。 该指令接受一个参数:'on' 或 'off'。将其设置为 'on' 后,开发者可以获得有价值的错误信息,这些信息对于诊断 FastCGI 应用程序的问题(尤其是在生产环境中)可能至关重要,因为查看这些日志可预先指出代码执行中的潜在错误。需要注意的是,如果应用产生大量错误输出,过多的日志记录可能会导致性能下降,因此建议谨慎管理日志级别。 正确使用 'fastcgi_catch_stderr' 可以通过 NGINX 将错误日志集中化,从而提高 FastCGI 应用的可维护性,并为开发者提供对可能在其他地方看不到的运行时错误的清晰洞察。然而,在使用此指令时,应权衡在高流量条件下提高日志详细程度对性能的影响。
配置示例
location /api {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
fastcgi_catch_stderr on;
}⚠
确保你的 FastCGI 应用程序配置为将错误输出到 stderr;否则,此指令将无效。
⚠
请注意,启用此功能可能会增加日志量,从而在高负载时导致性能下降。