HAProxy: ограничение одновременных подключений на основе поля заголовка HTTP

Я пытаюсь ограничить количество одновременных подключений с помощью HAProxy stick-таблиц на основе полей заголовка HTTP. Я мог бы найти множество примеров с использованием IP-адресов, но в моем случае это не работает. Наше приложение отличает учетную запись пользователя исключительно от поля заголовка HTTP x-account и ожидает запросы, поступающие с нескольких IP-адресов одновременно.

На данный момент я не могу предоставить какое-либо сообщение об ошибке или что-то еще, так как я не смог понять конфигурацию до сих пор. Таким образом, это очень простой вопрос об использовании / настройке HAProxy.

Из того, что я понял после прочтения документации HAProxy:

Я определяю таблицу приставок следующим образом:

stick-table type string size 100m store conn_cur

Это должно предоставить мне таблицу для хранения полей моего заголовка. Я не добавил expire, так как на самом деле мне все равно, и значения все равно будут повторяться. Также не ожидайте намного больше, чем 5K-10K записей, то есть разные учетные записи.

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

stick store-request hdr(x-account) account_table

И, кроме того, должна быть строка, которая отклоняет / отстраняет запрос, если максимальное количество сеансов для этого пользователя превышено. Что-то вроде этого, я думаю:

http-request tarpit if hdr(x-account) account_table gt 10

По крайней мере, это то, что я ожидал, но я могу быть совершенно неправ, хотя. Как я уже говорил, я не смог найти ни одного примера, использующего строки в палке. Если это поможет, я могу предоставить полную конфигурацию HAProxy, но я думаю, что это не имеет значения, поскольку это только часть определения внешнего интерфейса, верно?

Любая помощь приветствуется.

Ура, Ральф

0 ответов

Другие вопросы по тегам