Конфигурация 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 не будет пропускать одновременные запросы. Поэтому необходимо указать минимальное значение пакета для обработки этого.