Назад | Перейти на главную страницу

Ограничение скорости подключений HAProxy от клиентов за другим прокси или NAT

У нас есть HAProxy, работающий на нашем оборудовании pfSense, перенаправляющий единый интерфейс на несколько серверных служб (с использованием файлов cookie). Все отлично работает.

Мы хотели бы добавить в HAProxy базовое «ограничение скорости». В конфигурации Frontend я добавил

stick-table  type ip  size 100k  expire 20s  store http_req_rate(10s)
http-request track-sc0 src 
http-request deny deny_status 429 if { sc_http_req_rate(0) gt 100 }

Однако у одного из наших клиентов есть несколько сотен пользователей на одном сайте, и они подключаются к одному из наших приложений (что довольно «болтливо» с точки зрения сети) через прокси-сервер, поэтому запросы, попадающие на HAProxy, являются все с одного исходного IP. Все пользователи, как правило, заходят в приложение в одно и то же время дня, поэтому я опасаюсь устанавливать ограничение на количество новых подключений.

Хотя я осознаю, что это может быть ситуация «без выигрыша», есть ли какой-нибудь совет, как справиться с этим сценарием? Я мог бы, конечно, поднять ограничение скорости намного выше максимального уровня трафика, но мне кажется, что это снижает полезность любого ограничения скорости для предотвращения злонамеренных атак.

Я предполагаю, что у вас есть только варианты: использовать файлы cookie или, возможно (но маловероятно) заголовок x-forwarded-for. Вариант cookie будет аналогичен защите черной пятницы: http://www.loadbalancer.org/blog/black-friday-black-out-protection-with-haproxy/ Было бы очень интересно узнать, сможете ли вы получить рабочий пример проблемы, с которой столкнулись.