The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Ограничение пропускной способности в Apache используя mod_bwshare

06.11.2006 22:22

В заметке "Avoiding greedy webclients with mod_bwshare" рассказывается об использовании Apache модуля mod_bwshare для ограничения пропускной способности и числа запросов к web-серверу в единицу времени.

Ограничения задаются через пять параметров:

  • BW_tx1cred_rate - устанавливает ограничение для IP на число запросов в секунду (files/second);
  • BW_tx1debt_max - максимальный лимит для BW_tx1cred_rate (files).
  • BW_tx2cred_rate - устанавливает ограничение трафика для IP, байт в секунду (bytes/second).
  • BW_tx2debt_max - максимальный лимит для BW_tx2cred_rate (bytes).
  • BW_subnet_limit - позволяет задать ограничения, не только для отдельных IP, но и для подсети.

    Модуль написан с оглядкой на экономию ресурсов процессора и низкое потребление памяти. Контролировать текущее состояние можно через web-интерфейс. Поддерживается как Apache 1.3, так и Apache 2.x.

    В заключение, приведу ссылки на две небольшие заметки связанные с apache:

  • "Boosting Apache Performance by using Reverse Proxies" - использование Squid в режиме web акселератора;
  • "Troubleshooting Apache using strace" - использование strace для выявления причины неотправки почты из php скрипта.

    1. Главная ссылка к новости (http://www.debian-administrati...)
    2. OpenNews: Управление трафиком в apache посредством модуля mod_cband
    3. OpenNews: Использование Apache 2 и mod_cband для ограничения мирового трафика
    Лицензия: CC BY 3.0
    Короткая ссылка: https://opennet.ru/8714-apache
    Ключевые слова: apache, bandwidth, limit, traffic
    При перепечатке указание ссылки на opennet.ru обязательно


    Обсуждение (6) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, гость (?), 01:05, 07/11/2006 [ответить]  
  • +/
    Вопрос к Максу и остальным товарищам работающим над большими веб-проектами: что лучше - использовать данный модуль, шейпинг на уровне iptables, или на уровне внешней морды к апачу типа nginx\squid?
     
     
  • 2.5, Maxim Chirkov (ok), 10:06, 07/11/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >Вопрос к Максу и остальным товарищам работающим над большими веб-проектами: что лучше
    >- использовать данный модуль, шейпинг на уровне iptables, или на уровне
    >внешней морды к апачу типа nginx\squid?

    Шейпить имеет смысл только на низкоскоросных каналах, если канал нормальный, достаточно ограничить число одновременных коннектов на IP, для защиты от DoS атак.
    Через apache модуль делать это не рекомендую, из тех модулей что я смотрел, все линейно на каждый запрос перебирали состояние всех httpd процессов, если процессов сотня - нормально, а если тысяча - уже накладно. Оптимальным будет использование nginx или через пакетный фильтр.

     
     
  • 3.6, гость (?), 14:00, 07/11/2006 [^] [^^] [^^^] [ответить]  
  • +/
    > Шейпить имеет смысл только на низкоскоросных...
    > ... Оптимальным будет использование nginx или через пакетный фильтр

    А я думал, что через пакетный фильтр и это и есть "шейпить"...
    Может порекомендуете качественную доку для самопросвещения - хоть на русском, хоть на английском?

     

  • 1.2, Алексей (??), 01:38, 07/11/2006 [ответить]  
  • +/
    Лучше такие вещи не ограничивать.
    Чем быстрее клиенты будут скачивать запрашиваемые данные - тем меньше в итоге нагрузка на сервер, т. к. сам процесс скачивания пока длится - создает нагрузку.
    Если же активность какого-то из клиентов признается недоброкачественной (например, дос-атака) - то его банить надо, а не ограничивать канал.

    А nginx для большого проекта юзать крайне желательно. Единственный его недостаток - нету кеширования, для кеширования придется дополнительно подключать squid, или еще лучше - Apache2/worker.mpm.

     
     
  • 2.4, гость (?), 04:14, 07/11/2006 [^] [^^] [^^^] [ответить]  
  • +/
    > для кеширования придется дополнительно подключать squid, или еще лучше - Apache2/worker.mpm

    чего-то я вот этот момент не понял - какое отношение имеет worker.mpm к кэшированию - это ведь просто один из способов обработки клиентских запросов. Можно по-подробнее?

     

  • 1.3, Алексей (??), 01:40, 07/11/2006 [ответить]  
  • +/
    А если проблема в том, что канал ограничен, и нужно его по-справедливости разделить между клиентами - то это на уровне iptables/tc надо делать.
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру