Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  WWW
  hosting
  mod_gzip
  mod_log_sql
  mod_geoip
  mod_bandwidth
  mod_accounting
  mod_bunzip2
  mod_mp3
  mod_shapvh
  mod_limitipconn
  mod_sqlinclude
  mod_auth_imap
  webalizer
  Apache + SSL
  auth_ldap
  Настройка AWStats
  apache 2.0
  mod_auth_external
  CMS - TYPO3
  phpBB-2/3
  mod_ntlm
  mod_ntlm2
  Nginx+php+fcgi
  OTRS на Apache1
  OTRS на Apache20
  ApacheStats
  mod_evasive
  Lighttpd
  nginx+php-fpm+mysql
  php + mssql
  MySQL + кодировки
  svn+apache+trac
  php5-oci8
  Lighttpd + Apache
  CMS Drupal 6.9
  Apache22+MySQL
  Оптимизация хоста для CMS
  блокировка spam на www
  PostgreSQL 8
  Apache 22 + PHP5 + suPHP
  lighttpd + mod_uploadprogress
  VirtualBox + phpVirtualBox
  DNS API
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> WWW —> mod_bandwidth

mod_bandwidth - модуль для ограничения скорости скачки файлов

Автор: lissyara.


    Модуль 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

Снова перезапустил - забегало. Если когда-нить буду варезник разворачивать - пригодится :)



размещено: 2006-02-03,
последнее обновление: 2006-02-03,
автор: lissyara

оценить статью:

Admin_Paul, 2007-04-05 в 20:07:00

Apache 3.3.36

BandWidth               all             1024

работает только внутри <Directory> * </Directory>

у меня...


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 38 чел.
За последние 30 мин было: 222 человек
За сегодня было
2992 показов,
748 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0387 секунд
Из них PHP: 25%; SQL: 75%; Число SQL-запросов: 77 шт.
Исходный размер: 106862; Сжатая: 19205