

SYS.net.ruЗаписки системного администратора |
|
Аккаунт |
Главная »
Документы »
Ограничение трафика в Apache
Ограничение трафика в ApacheПривет ! Вчера придя на работу я глянул прокаченый за день трафик и ох....(охренел) просто. Блин, у меня с веб-сервера скачено было 1 гиг, и средняя скорость в течении нескольких часов держалась на уровне 1 мег в секунду !! Бедные провайдеры !! Я им не завидую !! Что можно сделать в этом случае ? Ну скажем закрыть страницу, переехать на другой сервер. Закрывать я скажем не буду, переезжать мне некуда, поэтому придется делать огранчиение на скачивание информации. У меня веб-сервер построен на Apache и зная, что к Апачу есть много всяких модулей, я решил ограничение сделать именно на нем. Модулей огранцичивающих трафик существует огромное множество, но я выбрал 1 - MOD_BANDWIDTH. Мне он почему-то показался самым быстрым и легко настраиваемым. Скачать исходники модуля можно со страницы автора : http://www.cohprog.com/v3/bandwidth/intro-en.html ну или как всегда у меня. При этом при скачивании у меня вы и натыкаетесь на работу модуля !! После скачивания можно его скомпилить в сам апач( я по-началу так и сделал), но можно и пойти другим путем :) К апачу есть такая приблуда, называется apxs, у меня она уже была поставлена, да и в общем в ред-хате она идет уже сколько версий. Теперь нужно скачаный модуль откомпилить с помощью это приблуды: apxs -c mod_bandwidth.c При этом каталог с библиотеками к апачу должен существовать, у меня он в /usr/include/apache Полученный *.so надо выложить к другим модулям апача, в редхате это /usr/bin/apache Далее нужно подключить модуль в конфиге /etc/httpd/conf/httpd.conf Ищем секцию где начинают массовыые загрузки модулей, что то вроде: LoadModule setenvif_module modules/mod_setenvif.so LoadModule ssl_module modules/libssl.so LoadModule auth_ldap_module modules/mod_auth_ldap.soВ конце дописываем свою секцию: LoadModule bandwidth_module modules/mod_bandwidth.so Которая подгружает модуль. Дальше по списку должна идти команда ClearModuleList. Сразу после нее надо добавить инициализацию модуля AddModule mod_bandwidth.c Надо теперь создать рабочие директории плагина, типа так: mkdir /tmp/apachebw mkdir /tmp/apachebw/link mkdir /tmp/apachebw/master chmod 0777 /tmp/apachebw -R После перезапуска апача все должно работать, причем без глюков !!! Теперь уже давай резать трафик юзерям !!! В конце конфига включаем модуль : BandWidthModule On Дальше уже надо конфигурить ресурсы, их можно настраивать для директории или в файле .htaccess Доступны команды: BandWidth <domain|ip|all> <rate> - ограничение для домена,узера или всех по трафику килобайт в секунду LargeFileLimit <filesize> <rate> - ограничение только для больших файлов MinBandWidth <domain|ip|all> <rate> - минимальная скорость потока Для примера, вот строка : <Directory /home/www> BandWidth ecp.fr 0 BandWidth 138.195 0 BandWidth all 1024 </Directory> Т.е. нет ограничения для ecp.fr и хостов 138.195 и огранчиение на уровне 1024 байт в секунду для всех остальных. И так далее, до бесконечности :) Желаю удачи, пишите, если что :) |
Copyright © 1999-2010 by SYS.NET.RU | История изменений | |