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

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.
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 17 чел.
За последние 30 мин было: 63 человек
За сегодня было
12 показов,
4 уникальных IP
 

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

© lissyara 2006-10-24 08:47 MSK

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