limit_req_zone, переменный rate
Sergej Kandyla
sk.paix на gmail.com
Чт Мар 11 15:07:09 MSK 2010
Господа, пытаюсь передать в limit_req_zone rate в качестве переменной.
nginx/0.8.34
centos5.4 i386
тест конфига проходит вполне успешно
http {
limit_req_zone $binary_remote_addr zone=one:10m $rate;
..
server {
location / {
limit_req zone=one ;
set $rate "rate=3r/s";
proxy_pass ....;
но на деле оказывается какая-то фигня, пробовал выставлять различные
значения, например "rate=1r/m" - какие-то запросы проходят, какие-то нет,
в логе примерно такое:
2010/03/11 13:55:21 [error] 12212#0: *20 limiting requests, excess:
0.000 by zone "one", client: XXX, server: XXX, request: "GET /?p=10
HTTP/1.1", host: "XXX", referrer: "http://XXX/?p=1"
вообщем работает непредсказуемо. В тоже время, если прописать rate зоны
статически - то работает как и должно.
Что делаю не так? куда копать?
PS. вся эта затея нужна для того чтобы по различным критериям выставлять
различный limit_req в пределах заданного сервера. В конкретном случае -
для различных айпи делать различные limit_req.
Подробная информация о списке рассылки nginx-ru