У меня есть следующий URL-адрес, по которому клиент может нажать.
/AnEndPoint?User=<user_emailid>&DeviceId=<device_id>
Я хочу ограничить количество пользователей на основе комбинации «Пользователь + DeviceId».
Для пользователя «A» с DeviceId 123делает больше x запросов / сек. необходимо добавить в таблицу флешек и дальнейший запрос отклонен
Я вижу здесь кое-что https://cbonte.github.io/haproxy-dconv/1.6/configuration.html#7.3.6-url_param
У меня есть пример конфигурации, который работает на Deviceid, как можноразверните это, чтобы также хранить useremail + Deviceid и блокировать только их.
frontend frontend1
http-request set-var(txn.email) urlp(User)
http-request set-var(txn.deviceid) urlp(DeviceId)
http-request deny if { var(txn.deviceid),table_http_req_rate(Abuse) ge 10 }
http-request track-sc0 var(txn.deviceid) table Abuse
backend somebackend
stick store-request var(txn.deviceid) table Abuse #ONLY STORING DEVICEID ,HOW TO STORE EMAIL WITH IT TOO?
backend Abuse
stick-table type string size 100K expire 30m store http_req_rate(10s)
У меня возникла проблема с пониманием того, как я могу вставить и увеличить значение, сгенерированное строкой запроса каждого запроса, в таблице флешки.