$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 в ситуациях, когда его значение изменяется в середине запроса, поскольку оно отражает значение в начале запроса.