$pipe

$pipe 变量表示请求是否以 pipelined 方式处理。 — NGINX Core (HTTP)

$pipe NGINX Core (HTTP)

说明

$pipe 变量用于 NGINX 服务器中,用来判断请求是否通过 HTTP pipelining 处理。Pipelining 是一种技术,允许在单个连接上发送多个请求,使客户端可以在收到先前响应之前发送额外的请求。在特定场景下,这可以提高性能,尤其是当 Web 浏览器为同时加载资源而发送多个请求时。 该变量可以在 NGINX 配置文件中引用,例如在需要根据请求是否为 pipelined 来有条件地处理某些请求的指令中。当接收到请求时,NGINX 会相应地设置 $pipe 变量的值:如果请求为 pipelined,则将其设置为 "pipelined",否则该变量未设置(或返回空字符串)。 $pipe 变量的典型用法包括基于请求是否为 pipelined 来进行日志记录以及控制访问或响应处理。例如,你可以为 pipelined 和非 pipelined 请求记录不同的消息,或者根据该变量的值应用不同的缓存机制。

配置示例

http {
    log_format custom_format '[$pipe] $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"';

    access_log /var/log/nginx/access.log custom_format;
}

子系统

http

可缓存

上下文

http, server, location, if

并非所有浏览器都支持流水线;如果在没有适当检查的情况下将 $pipe 用于重要的服务器逻辑,可能会导致混淆。

如果配置没有显式记录 $pipe 的值,在调试或性能调优时可能会导致误解。