limit_except
Директива 'limit_except' ограничивает HTTP-методы запросов в указанном блоке location. — NGINX HTTP Core
Описание
Директива 'limit_except' в NGINX используется внутри блока location для ограничения допустимых HTTP-методов запросов. При применении она задаёт набор разрешённых методов, а все остальные методы получат ответ 403 Forbidden. Например, если вы укажете 'GET' и 'HEAD' в блоке 'limit_except', все остальные методы, такие как 'POST', 'PUT' или 'DELETE', будут заблокированы. Это полезно для защиты ресурсов, где должны быть разрешены только определённые методы, что повышает контроль доступа и безопасность. Директива принимает в качестве аргумента блок, который содержит один или несколько методов, указанных в соответствующем синтаксисе конфигурации. Каждый метод можно перечислить подряд внутри блока. Например, если у вас есть 'limit_except GET { deny all; }', то будут разрешены только GET-запросы к этому location. Важно понимать, что в контексте защиты URI определённые здесь исключения обеспечивают корректную обработку запрещённых запросов, одновременно гарантируя обслуживание легитимных методов без прерываний.
Пример конфига
location /protected {
limit_except GET {
deny all;
}
}Убедитесь, что методы, указанные в 'limit_except', поддерживаются вашим приложением; неподдерживаемые методы могут непреднамеренно возвращать ошибку 403.
Помните, что правила 'limit_except' применяются только к указанному location block и не к вложенным location block, если они там явно не определены.