Я пытаюсь реализовать этот сценарий:
Только на определенном пути я получаю стабильные 9 запросов в секунду на интерфейсе. Все нормально, используйте обычный Backend. Теперь я получаю 11 запросов в секунду, я хочу отклонить любые запросы, превышающие 10. Но все же хочу продолжать отвечать максимум на 10 запросов в секунду.
Все, что я нашел и попробовал реализовать (например: https://blog.codecentric.de/en/2014/12/haproxy-http-header-rate-limiting/), являются черным или белым раствором, он все отбрасывает при достижении заданной скорости. Так что это защита от DDOS, злоумышленника, но не реальное решение для ограничения скорости.
Есть ли способ добиться этого?
PS: с помощью HAproxy 1.5.8
Если вы хотите использовать rate-limit sessions
, возможно ли для вас следующее?
frontend http_in
bind 0.0.0.0:80
acl is_path url_beg /path/example/
use_backend forwarder if is_path
backend forwarder
server localhost 127.0.0.1:4444 send-proxy
frontend limit_path_backend
bind 127.0.0.1:4444 accept-proxy
rate-limit sessions 10
default_backend webnodes