$request_method

$request_method 变量在 NGINX 中包含当前请求使用的 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
    }
}

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

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

← 返回所有变量