limit_req по нескольким параметрам

Сергей Авдюшкин sa на vl.ru
Чт Май 20 07:00:33 MSD 2010


Здравствуйте.

Мы используем limit_req чтобы избежать избыточного числа запросов к 
фронтенду. Клиентов различаем по source IP. Но один из местных 
провайдеров для всех своих клиентов делает SNAT на один-единственный 
IP-адрес.

Провайдер крупный. На пиках его клиенты дают 10-15 хитов/сек, до 
четверти всего нашего трафика. На этих самых пиках и начинает 
срабатывать лимитирование.

С этим провайдером у нас пиринг, чем пользуются некоторые из его 
клиентов, периодически пытаясь пропарсить наш ресурс, вызывая 
значительные всплески нарузки. Т.е. отказаться от использования 
лимитирования запросов конкретно для этого ISP, оставив его для 
остальных -- очень не хотелось бы.

Можно ли использовать с limit_req не одну, а несколько метрик?
Например, source IP + UserAgent. Если да, то как примерно посчитать
требыемый размер хранилища для сайта с ~80 хитов/сек? Если нет, то что
можно сделать в данной ситуации?

--
Сергей



Подробная информация о списке рассылки nginx-ru