$limit_req_status
Переменная $limit_req_status выводит код состояния механизма ограничения запросов в NGINX. — NGINX Core (HTTP)
Описание
Переменная $limit_req_status используется в конфигурации NGINX для указания кода ответа, возникающего в результате директив ограничения частоты запросов, определённых в модуле 'limit_req'. Когда запрос превышает установленный предел, NGINX может возвращать определённые коды состояния, такие как 503 (Сервис недоступен) или 503 с сообщением 'превышен лимит'. Переменная $limit_req_status фиксирует эти коды и делает их доступными для логирования или дальнейшей обработки. Эта переменная особенно полезна для создания пользовательских страниц ошибок или для различной обработки ответов в зависимости от кода состояния. Например, если запрос был ограничен из-за слишком большого количества запросов за короткий период, вы можете использовать значение $limit_req_status в конфигурации, чтобы управлять тем, как информировать пользователей о достижении лимита. Обычно она может возвращать такие значения, как 200 для нормальных запросов, 503 для запросов, отклонённых в результате ограничения частоты, или другие коды состояния, настроенные в приложении. Важно понимать, что переменная $limit_req_status заполняется только тогда, когда корректный запрос проходит через директиву limit_req и подпадает под поведение ограничения частоты. Если ограничение частоты не применяется или запрос не достигает этой директивы, переменная остаётся неустановленной.
Пример конфига
server {
location /api {
limit_req zone=one burst=5;
if ($limit_req_status = 503) {
return 429 'Too Many Requests';
}
}
}
Подсистема
httpКэшируется
НетКонтексты
http, server, locationУбедитесь, что директивы limit_req настроены правильно; в противном случае $limit_req_status может не устанавливаться ожидаемым образом.
Лучше всего использовать эту переменную совместно с логированием или пользовательской обработкой ошибок, чтобы получить полезную информацию.
Эта переменная отражает статус только для запросов, обработанных в рамках правил ограничения скорости, поэтому убедитесь, что ограничение скорости применяется корректно.