$sent_trailer_*

变量 $sent_trailer_ 是一个前缀变量,用于在 NGINX 中检索随 HTTP 响应发送的尾部字段。 — NGINX Core (HTTP)

$sent_trailer_* NGINX Core (HTTP)

说明

变量 $sent_trailer_ 与包含尾部字段的 HTTP/1.1 响应一同使用,尾部字段是消息正文之后发送的附加字段。该变量允许 NGINX 访问响应中可能设置的特定尾部字段。它可以作为尾部字段名称的前缀,例如 `$sent_trailer_myfield`,如果 HTTP 响应中指定了 `myfield`,则该变量会返回其值。 通常,该变量在 HTTP 响应阶段被设置,此时尾部字段已确定并准备发送。尾部字段本身在响应头字段中定义,因此与 $sent_trailer_ 变量关联的值将取决于应用程序或后端服务在 NGINX 发送最终响应之前如何填充这些尾部字段。如果指定的尾部字段存在,变量将返回其值;否则返回空字符串。 在前端服务器响应中,尾部字段的使用并不普遍,其支持在很大程度上依赖于客户端和服务器的实现。尾部字段的一些用例包括在流式场景中提供校验和数据或其他应在负载之后出现的元数据,这使得尾部字段成为某些特定应用的有用功能。

配置示例

location /example {
    add_header My-Trailer myvalue;
    # The value of the trailer can be accessed
    echo "$sent_trailer_My-Trailer";
}

子系统

http

可缓存

类型

前缀变量

上下文

http, server, location

如果指定的 trailer 不存在,访问该 variable 会返回空字符串,这在调试时可能导致混淆。

确保 backend 实际发送 trailer headers,否则该 variable 将没有值。

请记住,并非所有 clients 都支持 HTTP trailers,这可能会限制你的使用场景。