Включить User RateLimit, используя mod_qos - PullRequest
0 голосов
/ 28 апреля 2020

Я настроил mod_qos, mod_setenvifplus на сервере Ubuntu, и мое требование состоит в том, чтобы включить «Ограничение пользовательской скорости», при котором каждый пользователь должен быть ограничен по скорости, если пороговое значение достигает.

Например, пользователь X может нажать URI 10 раз в 60 сек c, после этого он / она будет ограничен по скорости с ошибкой «429 Too many Requests», и он / она может повторить попытку через 60 секунд.

У меня работает конфигурация ниже, когда Я использую его с «User-Agent» (используется для тестирования), однако он не работает, когда я использую его с заголовком ответа «X-AUSERNAME», который будет содержать аутентифицированное имя пользователя.

SetEnvIfPlus Remote_Addr (.*) realIP=$1
SetEnvIfPlus X-AUSERNAME (.*) virtualIP=$1
RequestHeaderPlus set X-Hash ${realIP}
SetHashHeaderPlus X-Hash virtualIP
SetEnvIfPlus virtualIP .* limitUser=1
QS_ClientIpFromHeader X-Hash
QS_EventLimitCount limitUser 1 10
QS_ErrorResponseCode 429

я могу передать Аутентифицированное имя пользователя переменному виртуальному IP, чтобы включить ограничение скорости для уровня пользователя.

это можно сделать с помощью mod_qos или мне нужно использовать любые другие модули, такие как mod_security?

Спасибо заранее.

...