$request_method
Переменная $request_method в NGINX содержит метод HTTP, используемый для текущего запроса. — 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 (Method Not Allowed) для всех остальных.
Пример конфига
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 в ситуациях, когда его значение изменяется в середине запроса, поскольку оно отражает значение в начале запроса.