limit requests

Igor Sysoev is at rambler-co.ru
Sat Mar 31 00:02:43 MSD 2007


Я сейчас делаю ограничение числа запросов. Хотелось бы сделать удобный
синтаксис и функциональность. Планируется заменить директиву

    limit_conn   zone_name  5;

на примерно такое:

    limit_requests  zone=zone_name
        speed=10k   conn=5  rate=1/s
        delay=1s            rate=2/s
        return=503          rate=5/s  burst=10
    ;

Что означает следующее:

        speed=10k    conn=5  rate=1/s

    ограничить скорость 10k/s, если соединений стало больше 5 и скорость
    запросов больше 1 в секунду, при этом скорость ограничивается только
    для 6-го и следующего соединения;

        delay=1s            rate=2/s

    делать задержку в 1 секунду перед обоработкой запроса, если
    соединений стало больше 5 [ неявный параметр из предыдущего
    ограничения ] и скорость запросов больше 2 в секунду;

        return=503          rate=5/s  burst=10

    возращать код 503, если соединений стало больше 5 [ неявный параметр
    из предыдущего ограничения ] и скорость запросов больше 5 в секунду
    и запросов в пике больше 10.

Если burst не указан, то он равен rate.

По мере описания условия [conn, rate и burst] должны увеличиваться
или оставаться такими же, но не должны уменьшаться.

Есть какие-нибудь комментарии/пожелания по названиям/функциональности ?


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list