$grpc_internal_trailers

变量 $grpc_internal_trailers 包含 gRPC 响应的内部 trailer 字段。 — NGINX Core (HTTP)

$grpc_internal_trailers NGINX Core (HTTP)

说明

$grpc_internal_trailers 变量在 gRPC 协议上下文中用于访问 gRPC 响应的 trailer 字段。gRPC 中的 trailer 是可以在响应末尾发送的键值对,类似于 HTTP headers,允许在响应体之外传递额外的元数据。只有当服务器处理 gRPC 请求并且能够处理 trailer 字段时,该变量才会被填充。 在处理 gRPC 响应时,如果相关的 trailer 信息被设置为包含,则可以通过 $grpc_internal_trailers 访问。因此,该变量通常包含以类似于 HTTP headers 的格式表示的 trailer 字段的字符串表示,字段之间由逗号或换行符分隔。如果请求没有返回任何 trailers,则该变量将保持为空。使用 trailers 可以提高通信效率,使服务器能够在不增加响应体开销的情况下随响应发送重要信息。

配置示例

location /example {
    grpc_pass grpc://backend;
    add_header Trailer 'grpc-status';
    set $status $grpc_internal_trailers;
}

子系统

http

可缓存

上下文

http, server, location

确保你的上游 gRPC 服务器确实设置了 trailers,否则该变量将为空。

避免在未使用 gRPC 的上下文中使用 $grpc_internal_trailers,因为它不会被填充。