The OpenNET Project / Index page

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

mod_bandwidth - модуль для ограничения скорости загрузки файлов (bandwidth apache limit freebsd)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: bandwidth, apache, limit, freebsd,  (найти похожие документы)
From: Алексей Кеда (lissyara) <admin@lissyara.su.> Date: Mon, 27 Apr 2008 18:21:07 +0000 (UTC) Subject: mod_bandwidth - модуль для ограничения скорости загрузки файлов Оригинал: http://www.lissyara.su/?id=1135 Модуль mod_bandwidth для apache1.3.x для ограничения скорости скачивания контента. Основной недостаток - понимает только статический контент - динамика созданная при помощи php пролетает мимо него. Масса настроек - позволяет очень широко поиграться скоростями по IP, имени домена... Пригодится если необходимо ограничить скорость скачивания с сайта файлов, музыки или другого статического контента. Ставим из портов: /usr/home/lissyara/>cd /usr/ports /usr/ports/>make search name='mod_bandwidth' Port: mod_bandwidth-2.0.6 Path: /usr/ports/www/mod_bandwidth Info: Bandwidth management module for the Apache webserver Maint: apache@FreeBSD.org B-deps: apache-1.3.34_4 expat-2.0.0 perl-5.8.7_2 R-deps: apache-1.3.34_4 expat-2.0.0 perl-5.8.7_2 WWW: http://www.cohprog.com/mod_bandwidth.html /usr/ports/>cd /usr/ports/www/mod_bandwidth /usr/ports/www/mod_bandwidth/>make && make install && make clean После установки раскомментируем строчки с модулем в конфиге /usr/local/etc/apache/httpd.conf LoadModule bandwidth_module libexec/apache/mod_bandwidth.so AddModule mod_bandwidth.c И добавляем туда же следующие строки: <IfModule mod_bandwidth.c> # Включен (On), или отключен модуль (Off) BandWidthModule On # Директория для хранения временных файлов BandWidthDataDir /tmp/bandwith # С какой периодичностью отдавать куски файла # (Дело в том, что модуль не ограничивает скорость скачивания клиентом, # он отдаёт данные кусками, на максимальной скорости, а между кусками # ждёт некоторое время. Вот это время и фирурирует в этом параметре. # время - в микросекундах! (надо заметить, что при числах меньше # десяти тыщщ у меня ничё не работало...) BandWidthPulse 10000 # Собственно скорость, с которой будет отдавать данные клиентам, # тут же указываются клиенты # анлим для локалки BandWidth 192.168. 0 # анлим для моего домена, т.е. для посетителей, # которых IP резольвится типа gate.lissyara.su .... BandWidth lissyara.su 0 # Скорость, в байт/секунду для всех остальных, - на # самом деле 1кб/с - это жестоко... Надо больше... BandWidth all 1024 # В этом параметре указывается скорость с которой будут отдаваться # большие файлы - тут же указывается и размер (надо заметить, что # размер файлов указывается в килобайтах, а скорость в байтах/секунду) # файл размером больше 100кб будет отдаваться со скоростью 2048 байт/с LargeFileLimit 100 2048 # файл размером больше 500кб будет отдавать со скоростью 4кб/с # т.е. при размере от 100 до 500 кб скорость # будет 2кб - согласно предыдущей директиве LargeFileLimit 500 4096 # Максимальное число коннектов - 0 анлим. MaxConnection 100 # Минимальная скорость - пунктик напрямую взаимосвязан с # парамером BandWidth - т.е. если поставить BandWidth 3кб/с, а # MinBandWidth 1кб/с то один клиент будет получать все три кб/с # если клиентов будет два - то получат по полтора кб/с а вот # если их будет сотня, то каждый получит по килобайту - это то # и указывается в MinBandWidth. Если поставить 0 - это будет # дефолтовое значение 256 байт/с, а -1 - тогда будет отдавать # каждому со cкоростью указанной в BandWidth # Синтаксис такой же как и у BandWidth MinBandWidth lissyara.su -1 MinBandWidth all 512 </IfModule> Конфиг для примера - чтоб было видно, что скорость зарубает - в реальной жизни, конечно, надо будет скорость поднять, иначе посетители уйдут, не дождавшись загрузки страницы... Затем создаём директорию временных файлов, и даём на неё права пользователю, от которого бегает apache: /root/>mkdir /tmp/bandwith /root/>chown www:wheel /tmp/bandwith После чего перезапускаем апач: /usr/local/etc/apache/>/usr/local/etc/rc.d/apache.sh restart Stopping apache. Waiting for PIDS: 6930. Starting apache. /usr/local/etc/apache/> И меня ожидал сюрприз - не работало.... Скорость какая была какая и есть. В httpd-access.log всё было нормально, а вот в /var/log/httpd-error.log сыпались ошибки: [Fri Feb 3 11:54:00 2006] [error] (2)No such file or directory: mod_bandwidth : Can't create/access master file /tmp/bandwith/master/86:282631 [Fri Feb 3 11:54:00 2006] [error] (2)No such file or directory: mod_bandwidth : Can't create/access master file /tmp/bandwith/master/86:282631 [Fri Feb 3 11:54:00 2006] [error] (2)No such file or directory: mod_bandwidth : Can't create/access master file /tmp/bandwith/master/86:282631 Вот как... А по документации он должен был создать субдиректории сам... Ну и ладно - делаю все, которые он сам должен был сделать: /usr/local/etc/apache/>mkdir -p /tmp/bandwith/master /usr/local/etc/apache/>mkdir -p /tmp/bandwith/link /usr/local/etc/apache/>chown -R www:wheel /tmp/bandwith Снова перезапустил - забегало.

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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