$request_method

$request_method 变量在 NGINX 中包含当前请求使用的 HTTP 方法。 — NGINX Core (HTTP)

$request_method NGINX Core (HTTP)

说明

$request_method 变量是 NGINX 核心变量的一部分,用于捕获正在处理的 HTTP 请求的方法。该变量将包含方法动词,例如 GET、POST、PUT、DELETE 或 HEAD,表明客户端打算对给定资源执行的操作。在需要对不同请求类型进行特定处理的场景中,这一点非常重要,例如区分 GET 和 POST 以便不同地处理数据。 当 NGINX 解析传入的 HTTP 请求头时,该变量会在请求处理阶段被设置。它经常用于条件判断或日志配置中,以捕获有关请求的详细信息,便于更好的诊断或根据请求类型应用不同的规则。例如,某些服务器配置可能仅允许对某些端点使用 POST 请求,使用 $request_method 变量可以帮助强制执行这一点: ``` if ($request_method !~ ^(GET|POST)$) { return 405; } ``` 该示例将访问限制为仅允许 GET 和 POST 方法,对所有其他方法返回 405(方法不被允许)状态。

配置示例

location /example {
    if ($request_method = POST) {
        # Handle POST requests
    }
    if ($request_method = GET) {
        # Handle GET requests
    }
}

子系统

http

可缓存

上下文

http, server, location, if

确保大小写正确:方法是区分大小写的,所以 'get' 和 'GET' 被视为不同。

避免在其值在请求中途会改变的情况下使用 $request_method,因为它反映的是请求开始时的值。