cgi_body_only
'cgi_body_only' 指令决定是否仅将 CGI 响应的主体发送给客户端,省略响应头。
CGI support for NGINX
·
serverlocation
语法cgi_body_only on | off;
默认值off
上下文server, location
参数flag
说明
'cgi_body_only' 指令在 NGINX 的 CGI 模块中用于控制处理 CGI 脚本时的响应行为。启用后,该指令会指示 NGINX 仅发送 CGI 脚本的响应主体,排除通常随 HTTP 响应一起发送的任何响应头。在某些情况下,当响应头不需要或因功能或性能原因应被省略时,这会很有用,使客户端只直接接收必要的内容。
在实现上,'cgi_body_only' 作为一个标志;当设置为 'on' 时,它告诉 NGINX 抑制标准的响应头。此设置可以在每个 server 或 location 块中配置,从而为服务器配置的特定部分如何处理 CGI 响应提供灵活性。此功能允许开发人员根据其独特需求调整 CGI 脚本的行为,特别是在那些不希望有打包响应头开销的应用中。
该指令已成为希望优化其应用的开发人员的有用选项,因为通过移除不必要的响应头,它可以减少通过网络发送的响应负载的大小。尽管这可能在特定用例下提升性能,但在省略响应头时应注意避免影响客户端的互操作性或期望,尤其是与内容类型和缓存指令相关的方面。
配置示例
location /cgi-bin/ {
cgi_pass unix:/var/run/fcgi.sock;
cgi_body_only on;
}⚠
如果 'cgi_body_only' 被设置为 'on',客户端可能无法收到诸如 Content-Type 或缓存指令等重要头部,这可能会影响响应的处理,尤其是在浏览器中。
⚠
确保你的 CGI 脚本在不依赖头部的情况下也能正确处理响应,因为头部的缺失可能导致客户端出现意外行为。