Назад | Перейти на главную страницу

nginx limit_req_zone ограничение со скоростью ниже указанной

Конфигурация limit_req_zone в моей конфигурации выглядит следующим образом:

limit_req_zone $nginx_version zone=site1:10m rate=1000r/s;

Мне не нужно больше 1000 запросов в секунду с зоны site1. Я использую эту зону в моем местоположении следующим образом:

location /exchange/site1/  
{  
      limit_req zone=site1 nodelay;  
      proxy_http_version      1.1;  
      proxy_set_header        Connection "";  
      proxy_set_header        X-Real-IP $remote_addr;  
      proxy_set_header        REMOTE_ADDR $remote_addr;  
      proxy_set_header        Host $http_host;  
      proxy_set_header        Content-Type application/json;  
      proxy_pass              http://lb-server/site1/;  
      proxy_redirect          off;  
}

Однако когда я на самом деле использую ngxtop, чтобы увидеть, сколько запросов я получаю и передаю, я вижу, что site1 на самом деле отправляет примерно 600 запросов в секунду, но примерно половина из них отбрасывается в nginx. Есть проблема с моей конфигурацией? Стоит ли увеличивать объем памяти? Я пробовал со 100 м, но все еще видел то же поведение. Что еще мне здесь не хватает, что могло бы помочь?

Проблема связана с без указания значения пакета. Из-за этого nginx не будет пропускать одновременные запросы. Поэтому необходимо указать минимальное значение пакета для обработки этого.