$request
$request 变量包含从客户端接收的完整请求行,包括 HTTP 方法、URI 和 HTTP 版本。 — NGINX Core (HTTP)
$request
NGINX Core (HTTP)
说明
`$request` 变量在 NGINX 中于处理 HTTP 请求的过程中被设置,捕获完整的请求行,其中包括 HTTP 方法(GET、POST 等)、请求的 URI 以及 HTTP 协议版本(HTTP/1.1、HTTP/2 等)。该变量在 NGINX 开始处理请求时被填充,并在各种上下文中使用,以提供关于正在处理请求的详细信息。因此,其值通常类似于 'GET /index.html HTTP/1.1' 或 'POST /api/v1/resource HTTP/2'。 `$request` 变量在日志记录或基于特定 HTTP 方法或请求 URI 定制响应时特别有用。例如,通过检查 `$request` 变量的内容,可以设计服务器规则以有条件地重写 URL、记录访问模式,甚至根据请求方法应用安全策略。值得注意的是,一旦请求被处理并生成响应,`$request` 变量保存的是最初接收到时的请求状态,不会被后续处理步骤或内部操作修改。
配置示例
http {
log_format custom_format '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent';
access_log /var/log/nginx/access.log custom_format;
}子系统
http可缓存
是上下文
http, server, location, if⚠
确保在正确的上下文中使用;它主要在请求处理上下文(例如 location 和 server)中可用。
⚠
使用 `$request` 不会反映重写后的 URI,除非在内部重写之后被明确请求。