$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 (Method Not Allowed) для всех остальных.

Пример конфига

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

Убедитесь в правильности регистра: методы чувствительны к регистру, поэтому 'get' и 'GET' обрабатываются по-разному.

Не используйте $request_method в ситуациях, когда его значение изменяется в середине запроса, поскольку оно отражает значение в начале запроса.

← Ко всем переменным