Как я могу реализовать ограничение скорости с помощью Apache? (запрос в секунду)



какие методы и|или модули доступны для реализации надежного ограничения скорости (запросы/байты/ip / единичное время) в apache?

715   7  

7 ответов:

лучшие

  • mod_evasive (сфокусировано больше на уменьшении выдержки DoS)
  • mod_cband (лучше всего подходит для "нормального" управления полосой пропускания)

а остальные

Как говорится в этот блог сообщение кажется возможным использовать Apache mod_security для реализации ограничения скорости в секунду.

конфигурация выглядит примерно так:

SecRuleEngine On

<LocationMatch "^/somepath">
  SecAction initcol:ip=%{REMOTE_ADDR},pass,nolog
  SecAction "phase:5,deprecatevar:ip.somepathcounter=1/1,pass,nolog"
  SecRule IP:SOMEPATHCOUNTER "@gt 60" "phase:2,pause:300,deny,status:509,setenv:RATELIMITED,skip:1,nolog"
  SecAction "phase:2,pass,setvar:ip.somepathcounter=+1,nolog"
  Header always set Retry-After "10" env=RATELIMITED
</LocationMatch>

ErrorDocument 509 "Rate Limit Exceeded"

существует множество способов, включая брандмауэры веб-приложений, но проще всего реализовать при использовании Apache mod.

один такой мод я хотел бы рекомендовать это mod_qos. Это бесплатный модуль, который очень эффективен против атак типа certin DOS, Bruteforce и Slowloris. Это позволит облегчить нагрузку на сервер совсем немного.

это очень мощный.

текущий релиз mod_qos модуль реализует механизмы управления для управления:

  • максимальное количество одновременных запросов к местоположению/ресурс (URL) или виртуальный хост.

  • ограничение пропускной способности, например максимально допустимое количество запросов в секунду к URL-адресу или максимальное / минимальное количество загруженных Кбайт в секунду.

  • ограничивает количество событий запроса в секунду (специальный запрос условия.)

  • ограничивает количество событий запроса в течение определенного периода времени.
  • он также может обнаруживать очень важных лиц (VIP), которые могут получить доступ к веб-сервер без или с меньшим количеством ограничений.
  • общий фильтр строки запроса и заголовка для запрета несанкционированного доступа оперативный.

  • ограничение и фильтрация данных тела запроса (требуется mod_parp).

  • ограничивает количество событий запроса для отдельных клиентов (ИНТЕЛЛЕКТУАЛЬНАЯ СОБСТВЕННОСТЬ.)

  • ограничения на уровне TCP-соединения, например, максимальное количество разрешено подключений с одного IP-адреса источника или динамический держите-Живой Контроль.

  • предпочитает известные IP-адреса, когда сервер работает из свободного TCP подключение.

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

Sample configuration:
# minimum request rate (bytes/sec at request reading):
QS_SrvRequestRate                                 120

# limits the connections for this virtual host:
QS_SrvMaxConn                                     800

# allows keep-alive support till the server reaches 600 connections:
QS_SrvMaxConnClose                                600

# allows max 50 connections from a single ip address:
QS_SrvMaxConnPerIP                                 50

# disables connection restrictions for certain clients:
QS_SrvMaxConnExcludeIP                    172.18.3.32
QS_SrvMaxConnExcludeIP                    192.168.10.

http://opensource.adnovum.ch/mod_qos/

в Apache 2.4 появился новый модуль под названием mod_ratelimit. Для эмуляции скорости модема можно использовать mod_dialup. Хотя я не понимаю, почему вы просто не могли использовать mod_ratelimit для всего.

к сожалению, mod_evasive не будет работать должным образом при использовании в конфигурациях без предварительного форка (последние настройки apache в основном MPM)

еще один вариант - mod_qos

не просто настроить-но мощный.

http://opensource.adnovum.ch/mod_qos/

зависит от того, почему вы хотите ограничить скорость.

Если это для защиты от перегрузки сервера, на самом деле имеет смысл поставить NGINX перед ним и настроить

Comments

    Ничего не найдено.