mod_cband - накладываем ограничения на виртуальные хосты

  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:74df115fb654bebee7bd313599067218' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtejustify\"><img hspace=\"5\" alt=\"mod_cband\" vspace=\"5\" align=\"left\" width=\"130\" height=\"130\" src=\"http://muff.kiev.ua/files/mod_cband_logo.png\" /><strong>mod_cband</strong> - служит для ограничения пропускной способности виртуального хоста, ограничения количества запросов и открытых соединения. Также есть возможность устанавливать ограничения на обьем переданной информации. После достижения лимита обьема можно либо блокировать доступ,&nbsp;либо изменить скорость доступа.</p>\n<p class=\"rtejustify\">Ознакомиться со всеми возможностями модуля можно на <a target=\"_blank\" href=\"http://codee.pl/cband.html\">странице проэкта</a>.</p>\n<p class=\"rtejustify\">Модуль явно используется хостерами,&nbsp;но и в частном случае может пригодится.</p>\n<p class=\"rtejustify\">Итак,&nbsp;перейдем от слов к делу. Выполним установку модуля из системы портов:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># cd /usr/ports/www/mod_cband &amp;&amp; make install clean &amp;&amp; rehash</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Установка прошла без проблем...&nbsp;Теперь&nbsp; пора&nbsp;разобраться как работает модуль.</p>\n<hr />\n<p class=\"rtejustify\">Итак,&nbsp;единицы измерения,&nbsp;которые поддерживаются модулем.</p>\n<p class=\"rtejustify\"><u><strong>Скорость передачи данных</strong></u></p>\n<ul>\n<li class=\"rtejustify\"><strong>kbps, Mbps, Gbps</strong> - множители бит/с. Соответственно 1024, 1024*1024 и 1024*1024*1024 бит/с.</li>\n<li class=\"rtejustify\"><strong>kb/s, Mb/s, Gb/s</strong> - множители байт/с. Соответвенно 1024, 1024*1024 и 1024*1024*1024 байт/с.</li>\n</ul>\n<p class=\"rtejustify\">По умолчанию - <strong>бит/с</strong>.</p>\n<p class=\"rtejustify\"><u><strong>Квотирование</strong></u></p>\n<ul>\n<li class=\"rtejustify\"><strong>K, M, G</strong> - множители байт. Соответственно 1000, 1000*1000 and 1000*1000*1000 байт.</li>\n<li class=\"rtejustify\"><strong>Ki, Mi, Gi</strong> - множители байт. Соответственно 1024, 1024*1024 and 1024*1024*1024 байт.</li>\n</ul>\n<p class=\"rtejustify\">По умолчанию - <strong>K</strong>.</p>\n<p class=\"rtejustify\"><u><strong>Временные периоды</strong></u></p>\n<ul>\n<li class=\"rtejustify\"><strong>S, M, H, D, W</strong> - множители секунд. Секунды, минуты,&nbsp;часы,&nbsp;дни и недели соответственно. 1, 60, 3600, 86400 и&nbsp;604800 секунд.</li>\n</ul>\n<p class=\"rtejustify\">По умолчанию - <strong>S</strong>.</p>\n<hr />\n<p class=\"rtejustify\"><strong>mod_cband</strong>&nbsp; поддерживает следующие ключи.</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<pre class=\"rtejustify\"><span style=\"color: #0000ff\"><span style=\"font-family: Arial\"><strong>Ключ:</strong></span></span><span style=\"font-family: Arial\"> <strong>CBandDefaultExceededURL\n</strong><span style=\"color: #0000ff\"><strong>Описание:</strong> </span> URL по умолчанию, куда mod_cband должен перенаправить все запросы\n к виртуальному хосту (или пользователю)&nbsp;после превышения квоты.\n<span style=\"color: #ff0000\"><strong>ПРИМЕЧАНИЕ:</strong></span><strong> </strong>Если не указать URL,&nbsp;при достижении лимита будет отправлен код ответа \n 503 (Service Unavailable).\n<span style=\"color: #0000ff\"><strong>Синтаксис:</strong></span> CBandDefaultExceededURL <strong><em>URL</em></strong>\n<span style=\"color: #0000ff\"><strong>Пример:</strong></span> </span><span style=\"font-family: Verdana\"> <font face=\"Arial\">CBandDefaultExceededURL http://muff.kiev.ua/forbidden.html</font></span></pre></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<pre class=\"rtejustify\"><span style=\"color: #0000ff\"><span style=\"font-family: Arial\"><strong>Ключ:</strong></span></span><span style=\"font-family: Arial\"> <strong>CBandDefaultExceededCode\n</strong><span style=\"color: #0000ff\"><strong>Описание:</strong> </span> HTTP-код, отправленный пользователю,&nbsp;когда квота будет превышена.\n<span style=\"color: #0000ff\"><strong>Синтаксис:</strong></span> CBandDefaultExceededCode <strong><em>HTTP_CODE\n</em></strong><span style=\"color: #0000ff\"><strong>Пример:</strong></span> </span><span style=\"font-family: Verdana\"> <font face=\"Arial\">CBandDefaultExceededCode 509</font></span></pre></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<pre class=\"rtejustify\"><span style=\"color: #0000ff\"><span style=\"font-family: Arial\"><strong>Ключ:</strong></span></span><span style=\"font-family: Arial\"> <strong>CBandScoreFlushPeriod\n</strong><span style=\"color: #0000ff\"><strong>Описание:</strong> </span> Период,&nbsp;по окончании которого счет для виртуалхоста или пользователя будет\n записан в файл.\n<span style=\"color: #0000ff\"><strong>Синтаксис:</strong></span> CBandScoreFlushPeriod <em><strong>number_of_requests\n</strong></em><span style=\"color: #0000ff\"><strong>Пример:</strong></span> </span><span style=\"font-family: Verdana\"> <font face=\"Arial\">CBandScoreFlushPeriod 100</font></span></pre></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<pre class=\"rtejustify\"><span style=\"color: #0000ff\"><span style=\"font-family: Arial\"><strong>Ключ:</strong></span></span><span style=\"font-family: Arial\"> <strong>CBandSpeed\n</strong><span style=\"color: #0000ff\"><strong>Описание:</strong> </span> Указывает максимальную скорость для виртуалхоста.\n<span style=\"color: #0000ff\"><strong>Синтаксис:</strong></span> CBandSpeed <em><strong>kbps rps max_conn\n</strong></em><span style=\"color: #000000\"><strong> kbps</strong> - максимальная скорость передачи\n <strong>rps</strong> - максимальное количество запросов в секунду\n <strong>max_conn</strong> - максимальное количество одновременных подключений</span><span style=\"color: #0000ff\">\n<strong>Пример:</strong></span> </span><span style=\"font-family: Verdana\"> <font face=\"Arial\">CBandSpeed 1024 10 30</font></span></pre></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<pre class=\"rtejustify\"><span style=\"color: #0000ff\"><span style=\"font-family: Arial\"><strong>Ключ:</strong></span></span><span style=\"font-family: Arial\"> <strong>CBandRemoteSpeed\n</strong><span style=\"color: #0000ff\"><strong>Описание:</strong> </span> Указывает максимальную скорость для любого удаленного клиента.\n<span style=\"color: #0000ff\"><strong>Синтаксис:</strong></span> CBandRemoteSpeed <em><strong>kbps rps max_conn\n</strong></em><span style=\"color: #000000\"><strong> kbps</strong> - максимальная скорость передачи\n <strong>rps</strong> - максимальное количество запросов в секунду\n <strong>max_conn</strong> - максимальное количество одновременных подключений</span><span style=\"color: #0000ff\">\n<strong>Пример:</strong></span> </span><span style=\"font-family: Verdana\"> <font face=\"Arial\">CBandRemoteSpeed 20kb/s 3 3</font></span></pre></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<pre class=\"rtejustify\"><span style=\"color: #0000ff\"><span style=\"font-family: Arial\"><strong>Ключ:</strong></span></span><span style=\"font-family: Arial\"> <strong>CBandClassRemoteSpeed\n</strong><span style=\"color: #0000ff\"><strong>Описание:</strong> </span> Указывает максимальную скорость для любого удаленного клиента в зависимости\n от значений класса.\n<span style=\"color: #0000ff\"><strong>Синтаксис:</strong></span> CBandClassRemoteSpeed <em><strong>class_name kbps rps max_conn\n</strong></em><span style=\"color: #000000\"><strong> class_name </strong>- название определенного класа<strong>\n kbps</strong> - максимальная скорость передачи\n <strong>rps</strong> - максимальное количество запросов в секунду\n <strong>max_conn</strong> - максимальное количество одновременных подключений</span><span style=\"color: #0000ff\">\n<strong>Пример:</strong></span> </span><span style=\"font-family: Verdana\"> <span style=\"font-family: Arial\">CBandClassDst 66.249.64/24\n</span> <span style=\"font-family: Arial\">CBandClassDst 66.249.65/24</span>\n<font face=\"Arial\"> CBandClassDst 66.249.79/24\n CBandClassRemoteSpeed googlebot_class 20kb/s 2 3</font></span></pre></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<pre class=\"rtejustify\"><span style=\"color: #0000ff\"><span style=\"font-family: Arial\"><strong>Ключ:</strong></span></span><span style=\"font-family: Arial\"> <strong>CBandRandomPulse\n</strong><span style=\"color: #0000ff\"><strong>Описание:</strong> </span> Генератор случайных импульсов,&nbsp;является частью ограничителя скорости.\n<span style=\"color: #0000ff\"><strong>Синтаксис:</strong></span> CBandRandomPulse <em><strong>On / Off\n</strong></em><span style=\"color: #0000ff\"><strong>Пример:</strong></span> </span><span style=\"font-family: Verdana\"> <font face=\"Arial\">CBandRemoteSpeed On</font></span></pre></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<pre class=\"rtejustify\"><span style=\"color: #0000ff\"><span style=\"font-family: Arial\"><strong>Ключ:</strong></span></span><span style=\"font-family: Arial\"> <strong>CBandLimit\n</strong><span style=\"color: #0000ff\"><strong>Описание:</strong> </span> Задает квоту для виртуалхоста.\n<span style=\"color: #0000ff\"><strong>Синтаксис:</strong></span> CBandLimit <em><strong>limit\n </strong></em>Лимит - доступные величины: K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi), Gi (gibi)<em><strong>\n</strong></em><span style=\"color: #0000ff\"><strong>Пример:</strong></span> </span><span style=\"font-family: Verdana\"> <font face=\"Arial\">CBandLimit 10M\n Задает квоту 10*1000*1000 байт\n CBandLimit 10Mi\n Задает квоту 10*1024*1024 байт</font></span></pre></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<pre class=\"rtejustify\"><span style=\"color: #0000ff\"><span style=\"font-family: Arial\"><strong>Ключ:</strong></span></span><span style=\"font-family: Arial\"> <strong>CBandClassLimit\n</strong><span style=\"color: #0000ff\"><strong>Описание:</strong> </span> Задает квоту для виртуалхоста.\n<span style=\"color: #0000ff\"><strong>Синтаксис:</strong></span> CBandClassLimit <strong><em>class_name limit\n </em>class_name </strong>- название определенного класа\n<strong><em> </em></strong>Лимит - доступные величины: K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi), Gi (gibi)</span></pre></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<pre class=\"rtejustify\"><span style=\"color: #0000ff\"><span style=\"font-family: Arial\"><strong>Ключ:</strong></span></span><span style=\"font-family: Arial\"> <strong>CBandExceededURL\n</strong><span style=\"color: #0000ff\"><strong>Описание:</strong> </span> Задает URL, на который будут перенаправлены запросы,&nbsp;когда ограничения \n будут превышены.\n<span style=\"color: #0000ff\"><strong><span style=\"color: #ff0000\">ПРИМЕЧАНИЕ:<em> </em></span><em><font color=\"#000000\"> </font></em></strong><font color=\"#000000\">Если не указать URL, при достижении лимита будет отправлен код ответа \n 503 (Service Unavailable).</font>\n<strong>Синтаксис:</strong></span> CBandExceededURL <strong><em>URL\n</em><span style=\"color: #0000ff\">Пример:</span><em> </em></strong>CBandExceededURL http://muff.kiev.ua/forbidden.html</span></pre></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<pre class=\"rtejustify\"><span style=\"color: #0000ff\"><span style=\"font-family: Arial\"><strong>Ключ:</strong></span></span><span style=\"font-family: Arial\"> <strong>CBandExceededSpeed\n</strong><span style=\"color: #0000ff\"><strong>Описание:</strong> </span> Задает максимальную скорость, до которой mod_cband понизит скорость в случае\n превышения квоты.\n<span style=\"color: #0000ff\"><strong>Синтаксис:</strong></span> CBandExceededSpeed <strong><em>kbps rps max_conn\n </em>kbps</strong> - максимальная скорость передачи\n <strong>rps</strong> - максимальное количество запросов в секунду\n <strong>max_conn</strong> - максимальное количество одновременных подключений</span></pre></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<pre class=\"rtejustify\"><span style=\"color: #0000ff\"><span style=\"font-family: Arial\"><strong>Ключ:</strong></span></span><span style=\"font-family: Arial\"> <strong>CBandScoreboard\n</strong><span style=\"color: #0000ff\"><strong>Описание:</strong> </span> Задает scoreboard-файл для виртуалхоста.\n<span style=\"color: #0000ff\"><strong>Синтаксис:</strong></span> CBandScoreboard <strong><em>path\n</em></strong><span style=\"color: #ff0000\"><strong>ПРИМЕЧАНИЕ:</strong></span> Файл должен быть доступен для записи пользователем, от имени которого работает\n процесс Apache.</span></pre></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<pre class=\"rtejustify\"><span style=\"color: #0000ff\"><span style=\"font-family: Arial\"><strong>Ключ:</strong></span></span><span style=\"font-family: Arial\"> <strong>CBandPeriod\n</strong><span style=\"color: #0000ff\"><strong>Описание:</strong> </span> Задает период, после которого счетчики ограничений обнуляются.\n<span style=\"color: #0000ff\"><strong>Синтаксис:</strong></span> CBandPeriod <em><strong>period\n</strong></em><span style=\"color: #0000ff\"><strong>Пример: </strong><font color=\"#000000\">CBandPeriod <span class=\"Apple-style-span\" style=\"widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium \'Times New Roman\'; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px\"><span class=\"Apple-style-span\" style=\"line-height: 16px; font-family: Arial, Helvetica, sans-serif; font-size: 13px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px\">1W\n <font size=\"2\">CBandPeriod <span class=\"Apple-style-span\" style=\"widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium \'Times New Roman\'; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px\"><span class=\"Apple-style-span\" style=\"line-height: 16px; font-family: Arial, Helvetica, sans-serif; font-size: 13px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px\">60М</span></span></font></span></span></font></span></span></pre></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<pre class=\"rtejustify\"><span style=\"color: #0000ff\"><span style=\"font-family: Arial\"><strong>Ключ:</strong></span></span><span style=\"font-family: Arial\"> <strong>CBandPeriodSlice\n</strong><span style=\"color: #0000ff\"><strong>Описание:</strong> </span> Задает длину части периода.\n<span style=\"color: #0000ff\"><strong>Синтаксис:</strong></span> CBandPeriodSlice <em><strong>slice_length\n</strong></em><span style=\"color: #0000ff\"><strong>Пример: </strong><span style=\"color: #000000\">CBandLimit 100G\n CBandPeriod 4W</span><strong>\n </strong><font color=\"#000000\">CBandPeriodSlice <span class=\"Apple-style-span\" style=\"widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium \'Times New Roman\'; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px\"><span class=\"Apple-style-span\" style=\"line-height: 16px; font-family: Arial, Helvetica, sans-serif; font-size: 13px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px\">1W\n Период будет разделен на 4 части (4W/1W = 4). \n Для каждой части задано ограничение в 25G (100G/4=25G)</span></span></font></span></span></pre></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<pre class=\"rtejustify\"><span style=\"color: #0000ff\"><span style=\"font-family: Arial\"><strong>Ключ:</strong></span></span><span style=\"font-family: Arial\"> \n<span style=\"color: #0000ff\"><strong>Описание:</strong> </span> Задает имя cband-пользователя.\n<span style=\"color: #0000ff\"><strong>Синтаксис:</strong></span> <em><strong>user_name &gt;</strong></em></span></pre></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<pre class=\"rtejustify\"><span style=\"color: #0000ff\"><span style=\"font-family: Arial\"><strong>Ключ:</strong></span></span><span style=\"font-family: Arial\"> <strong>CBandUserSpeed\n</strong><span style=\"color: #0000ff\"><strong>Описание:</strong> </span> Задает максимальную скорость для cband-пользователя.\n<span style=\"color: #0000ff\"><strong>Синтаксис:</strong></span> CBandUserSpeed <em><strong> kbps rps max_conn\n</strong></em><span style=\"color: #0000ff\"><font color=\"#000000\"><strong><em> </em>kbps</strong> - максимальная скорость передачи\n <strong>rps</strong> - максимальное количество запросов в секунду\n <strong>max_conn</strong> - максимальное количество одновременных подключений</font>\n<strong>Пример: </strong><span style=\"color: #000000\">CBandUserSpeed 100kb/s 10 5</span></span></span></pre></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<pre class=\"rtejustify\"><span style=\"color: #0000ff\"><span style=\"font-family: Arial\"><strong>Ключ:</strong></span></span><span style=\"font-family: Arial\"> <strong>CBandUserLimit\n</strong><span style=\"color: #0000ff\"><strong>Описание:</strong> </span> Задает квоту cband-пользователя.\n<span style=\"color: #0000ff\"><strong>Синтаксис:</strong></span> CBandUserLimit <em><strong>limit\n Лимит</strong></em> - доступные величины: K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi), Gi (gibi)<br /><span style=\"color: #0000ff\"><strong>Пример: </strong><span style=\"color: #000000\">CBandUserSpeed 10M\n Задает квоту 10*1000*1000 байт\n CBandUserSpeed 10Mi\n Задает квоту 10*1024*1024 байт</span></span></span></pre></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<pre class=\"rtejustify\"><span style=\"color: #0000ff\"><span style=\"font-family: Arial\"><strong>Ключ:</strong></span></span><span style=\"font-family: Arial\"> <strong>CBandUserClassLimit\n</strong><span style=\"color: #0000ff\"><strong>Описание:</strong> </span> Задает квоту cband-пользователя в зависимоти от класа назначения.\n<span style=\"color: #0000ff\"><strong>Синтаксис:</strong></span> CBandUserClassLimit <em><strong>class_name limit\n class_name </strong></em>- название определенного класа\n <strong><em>Лимит</em></strong> - доступные величины: K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi), Gi (gibi)</span></pre></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<pre class=\"rtejustify\"><span style=\"color: #0000ff\"><span style=\"font-family: Arial\"><strong>Ключ:</strong></span></span><span style=\"font-family: Arial\"> <strong>CBandUserExceededURL\n</strong><span style=\"color: #0000ff\"><strong>Описание:</strong> </span> Задает URL, на который будут перенаправлены запросы, когда квота cband-пользователя\n будет превышена.\n<span style=\"color: #0000ff\"><strong>Синтаксис:</strong></span> CBandUserExceededURL <em><strong>URL\n</strong></em><span style=\"color: #0000ff\"><strong><span style=\"color: #ff0000\">ПРИМЕЧАНИЕ:<em> </em></span><font color=\"#000000\"><em> </em></font></strong><font color=\"#000000\">Если не указать URL, при достижении лимита будет отправлен код ответа \n 503 (Service Unavailable).</font></span>\n<span style=\"color: #0000ff\"><strong>Пример:</strong></span> CBandUserExceededURL http://muff.kiev.ua/forbidden.html</span></pre></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<pre class=\"rtejustify\"><span style=\"color: #0000ff\"><span style=\"font-family: Arial\"><strong>Ключ:</strong></span></span><span style=\"font-family: Arial\"> <strong>CBandUserExceededSpeed\n</strong><span style=\"color: #0000ff\"><strong>Описание:</strong> </span> Задает максимальную скорость для cband-пользователя после превышения квоты.\n<span style=\"color: #0000ff\"><strong>Синтаксис:</strong></span> CBandUserExceededSpeed <em><strong>kbps rps max_conn\n</strong></em><span style=\"color: #0000ff\"><font color=\"#000000\"><strong><em> </em>kbps</strong> - максимальная скорость передачи\n <strong>rps</strong> - максимальное количество запросов в секунду\n <strong>max_conn</strong> - максимальное количество одновременных подключений</font>\n<strong>Пример: </strong><span style=\"color: #000000\">CBandUserExceededSpeed 10kb/s 5 3</span></span></span></pre></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<pre class=\"rtejustify\"><span style=\"color: #0000ff\"><span style=\"font-family: Arial\"><strong>Ключ:</strong></span></span><span style=\"font-family: Arial\"> <strong>CBandUserScoreboard\n</strong><span style=\"color: #0000ff\"><strong>Описание:</strong> </span> Задает scoreboard-файл для cband-пользователя.\n<span style=\"color: #0000ff\"><strong>Синтаксис:</strong></span> CBandUserScoreboard <strong><em>path\n</em></strong><span style=\"color: #ff0000\"><strong>ПРИМЕЧАНИЕ:</strong></span> Файл должен быть доступен для записи пользователем, от имени которого работает \n процесс Apache.</span></pre></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<pre class=\"rtejustify\"><span style=\"color: #0000ff\"><span style=\"font-family: Arial\"><strong>Ключ:</strong></span></span><span style=\"font-family: Arial\"> <strong>CBandUserPeriod\n</strong><span style=\"color: #0000ff\"><strong>Описание:</strong> </span> Задает период, после которого счетчики ограничений cband-пользователя обнуляются.\n<span style=\"color: #0000ff\"><strong>Синтаксис:</strong></span> CBandUserPeriod <em><strong>period\n</strong></em><span style=\"color: #0000ff\"><strong>Пример: </strong><font color=\"#000000\">CBandUserPeriod <span class=\"Apple-style-span\" style=\"widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium \'Times New Roman\'; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px\"><span class=\"Apple-style-span\" style=\"line-height: 16px; font-family: Arial, Helvetica, sans-serif; font-size: 13px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px\">1W\n <font size=\"2\">CBandUserPeriod <span class=\"Apple-style-span\" style=\"widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium \'Times New Roman\'; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px\"><span class=\"Apple-style-span\" style=\"line-height: 16px; font-family: Arial, Helvetica, sans-serif; font-size: 13px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px\">60М</span></span></font></span></span></font></span></span></pre></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<pre class=\"rtejustify\"><span style=\"color: #0000ff\"><span style=\"font-family: Arial\"><strong>Ключ:</strong></span></span><span style=\"font-family: Arial\"> <strong>CBandUserPeriodSlice\n</strong><span style=\"color: #0000ff\"><strong>Описание:</strong> </span> Задает длину части периода для cband-пользователя.\n<span style=\"color: #0000ff\"><strong>Синтаксис:</strong></span> CBandUserPeriodSlice <em><strong>slice_length\n</strong></em><span style=\"color: #0000ff\"><strong>Пример: </strong><span style=\"color: #000000\">CBandUserLimit 100G\n CBandUserPeriod 4W</span><strong>\n </strong><font color=\"#000000\">CBandUserPeriodSlice <span class=\"Apple-style-span\" style=\"widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium \'Times New Roman\'; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px\"><span class=\"Apple-style-span\" style=\"line-height: 16px; font-family: Arial, Helvetica, sans-serif; font-size: 13px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px\">1W\n Период будет разделен на 4 части (4W/1W = 4).\n Для каждой части задано ограничение в 25G (100G/4=25G)</span></span></font></span></span></pre></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">Итак,&nbsp;попробуем ограничить ресурсы для определенного виртуального хоста. Чтобы упростить задачу, пусть на этом виртуальном хосте будет установлен <a href=\"http://muff.kiev.ua/content/speedtest-u-sebya-na-servere\">Speedtest</a>.</p>\n<p class=\"rtejustify\">В конфигурационный файл виртуалхоста добавлены следующие переменные:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p>CBandSpeed 1024 10 30<br />\n CBandRemoteSpeed&nbsp;256 4 4<br />\n CBandExceededURL <a href=\"http://muff.kiev.ua/\">http://muff.kiev.ua/</a><br />\n CBandLimit 15Mi<br />\n CBandPeriod 4W<br />\n CBandScoreboard /usr/local/etc/apache22/scoreboard/test.muff.kiev.ua.scoreboard</p>\n</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Создадим каталог,&nbsp;где будут храниться scoreboard-файлы и выставим необходимые права:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p># mkdir /usr/local/etc/apache22/scoreboard</p>\n<p># chown -R www:www /usr/local/etc/apache22/scoreboard</p>\n</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Перезапускаем Apache, чтобы изменения вступили в силу:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># apachectl graceful</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Проверяем,&nbsp;сработали ли ограничения по скорости:</p>\n<p class=\"rtecenter\"><a class=\"thickbox\" title=\"\" href=\"/files/imagepicker/1/mod_cband-00.png\"><img alt=\"Image\" src=\"/files/imagepicker/1/thumbs/mod_cband-00.png\" /></a></p>\n<p class=\"rtejustify\">Как видим,&nbsp;ограничения сработали только на исход (относительно сервера), а на вход ограничения не работают. Но, на мое&nbsp; мнение, это не так и страшно.</p>\n<p class=\"rtejustify\">Поганял еще Speedtest, чтобы достигнуть квоты в 15 мегабайт. По достижению квоты,&nbsp;сработал ключ CBandExceededURL,&nbsp;соответственно был перенаправлен на указанный URL.</p>\n<p class=\"rtejustify\">Все доступные возможности проверять не стал, остановился только на указанных.</p>\n<p class=\"rtejustify\">Кстати,&nbsp;<strong>mod_cband</strong> также поддерживает возможность отображения статистики. Для активации даной возможности необходимо добавить в конфигурационный файл виртуалхоста следующий блок:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>&lt;Location /cband-status&gt;<br />\n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SetHandler cband-status<br />\n &lt;/Location&gt;<br />\n &lt;Location /cband-status-me&gt;<br />\n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SetHandler cband-status-me<br />\n &lt;/Location&gt;<br />\n &nbsp;</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">После внесения изменений необходимо перезапустить веб-сервер:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># apachectl graceful</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Для просмотра статистики&nbsp;необходимо зайти по ссылке http://<span style=\"color: #ff0000\">имя_виртуального_хоста</span>/cband-status. Результат будет примерно следующий:</p>\n<p class=\"rtecenter\">&nbsp;</p>\n<p class=\"rtecenter\"><a class=\"thickbox\" title=\"\" href=\"/files/imagepicker/1/mod_cband-01.png\"><img alt=\"Image\" src=\"/files/imagepicker/1/thumbs/mod_cband-01.png\" /></a>&nbsp;</p>\n<p class=\"rtejustify\">Основные вожможности модуля рассмотрели. Для более детального ознакомления советую ознакомиться с <a target=\"_blank\" href=\"http://codee.pl/cband_documentation.html\">документацией</a>,&nbsp;тем более что доступно множество примеров.</p>\n', created = 1767588641, expire = 1767675041, headers = '', serialized = 0 WHERE cid = '2:74df115fb654bebee7bd313599067218' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:07243fc0252056071eaa62af8c18d662' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><a class=\"thickbox\" href=\"/files/imagepicker/1/wake_up_ua.png\"><img alt=\"Вставай, Україно!\" class=\"imgp_img\" src=\"/files/imagepicker/1/thumbs/wake_up_ua.png\" style=\"height:200px; width:150px\" /></a></p>\n', created = 1767588641, expire = 1767675041, headers = '', serialized = 0 WHERE cid = '2:07243fc0252056071eaa62af8c18d662' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '3:cc913d232116f0426090404133377d88' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:d9a86123bfcbc57878743027b584400b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><a href=\"http://muff.kiev.ua/rss.xml\"><img alt=\"RSS\" width=\"160\" height=\"60\" src=\"http://muff.kiev.ua/files/muf-rss.png\" /></a></p>\n', created = 1767588641, expire = 1767675041, headers = '', serialized = 0 WHERE cid = '2:d9a86123bfcbc57878743027b584400b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '3:39649256b636e3d5ded656bc52bd8c01' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
Версия для печатиОтправить другуPDF version

mod_cbandmod_cband - служит для ограничения пропускной способности виртуального хоста, ограничения количества запросов и открытых соединения. Также есть возможность устанавливать ограничения на обьем переданной информации. После достижения лимита обьема можно либо блокировать доступ, либо изменить скорость доступа.

Ознакомиться со всеми возможностями модуля можно на странице проэкта.

Модуль явно используется хостерами, но и в частном случае может пригодится.

Итак, перейдем от слов к делу. Выполним установку модуля из системы портов:

# cd /usr/ports/www/mod_cband && make install clean && rehash

Установка прошла без проблем... Теперь  пора разобраться как работает модуль.


Итак, единицы измерения, которые поддерживаются модулем.

Скорость передачи данных

  • kbps, Mbps, Gbps - множители бит/с. Соответственно 1024, 1024*1024 и 1024*1024*1024 бит/с.
  • kb/s, Mb/s, Gb/s - множители байт/с. Соответвенно 1024, 1024*1024 и 1024*1024*1024 байт/с.

По умолчанию - бит/с.

Квотирование

  • K, M, G - множители байт. Соответственно 1000, 1000*1000 and 1000*1000*1000 байт.
  • Ki, Mi, Gi - множители байт. Соответственно 1024, 1024*1024 and 1024*1024*1024 байт.

По умолчанию - K.

Временные периоды

  • S, M, H, D, W - множители секунд. Секунды, минуты, часы, дни и недели соответственно. 1, 60, 3600, 86400 и 604800 секунд.

По умолчанию - S.


mod_cband  поддерживает следующие ключи.

Ключ:		CBandDefaultExceededURL
Описание:		URL по умолчанию, куда mod_cband должен перенаправить все запросы
		к виртуальному хосту (или пользователю) после превышения квоты.
ПРИМЕЧАНИЕ: 	Если не указать URL, при достижении лимита будет отправлен код ответа 
		503 (Service Unavailable).
Синтаксис:	CBandDefaultExceededURL URL
Пример:		CBandDefaultExceededURL http://muff.kiev.ua/forbidden.html

Ключ:		CBandDefaultExceededCode
Описание:		HTTP-код, отправленный пользователю, когда квота будет превышена.
Синтаксис:	CBandDefaultExceededCode HTTP_CODE
Пример:		CBandDefaultExceededCode 509

Ключ:		CBandScoreFlushPeriod
Описание:		Период, по окончании которого счет для виртуалхоста или пользователя будет
		записан в файл.
Синтаксис:	CBandScoreFlushPeriod number_of_requests
Пример:		CBandScoreFlushPeriod 100

Ключ:		CBandSpeed
Описание:		Указывает максимальную скорость для виртуалхоста.
Синтаксис:	CBandSpeed  kbps rps max_conn
		kbps - максимальная скорость передачи
		rps - максимальное количество запросов в секунду
		max_conn - максимальное количество одновременных подключений
Пример:		CBandSpeed 1024 10 30

Ключ:		CBandRemoteSpeed
Описание:		Указывает максимальную скорость для любого удаленного клиента.
Синтаксис:	CBandRemoteSpeed kbps rps max_conn
		kbps - максимальная скорость передачи
		rps - максимальное количество запросов в секунду
		max_conn - максимальное количество одновременных подключений
Пример:		CBandRemoteSpeed 20kb/s 3 3

Ключ:		CBandClassRemoteSpeed
Описание:		Указывает максимальную скорость для любого удаленного клиента в зависимости
		от значений класса.
Синтаксис:	CBandClassRemoteSpeed class_name kbps rps max_conn
		class_name - название определенного класа
		kbps - максимальная скорость передачи
		rps - максимальное количество запросов в секунду
		max_conn - максимальное количество одновременных подключений
Пример:		CBandClassDst 66.249.64/24
		CBandClassDst 66.249.65/24
		CBandClassDst 66.249.79/24
		CBandClassRemoteSpeed googlebot_class 20kb/s 2 3

Ключ:		CBandRandomPulse
Описание:		Генератор случайных импульсов, является частью ограничителя скорости.
Синтаксис:	CBandRandomPulse On / Off
Пример:		CBandRemoteSpeed On

Ключ:		CBandLimit
Описание:		Задает квоту для виртуалхоста.
Синтаксис:	CBandLimit limit
		Лимит - доступные величины: K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi), Gi (gibi)
Пример:		CBandLimit 10M
		Задает квоту 10*1000*1000 байт
		CBandLimit 10Mi
		Задает квоту 10*1024*1024 байт

Ключ:		CBandClassLimit
Описание:		Задает квоту для виртуалхоста.
Синтаксис:	CBandClassLimit class_name limit
		class_name - название определенного класа
		Лимит - доступные величины: K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi), Gi (gibi)

Ключ:		CBandExceededURL
Описание:		Задает URL, на который будут перенаправлены запросы, когда ограничения 
		будут превышены.
ПРИМЕЧАНИЕ: 	Если не указать URL, при достижении лимита будет отправлен код ответа 
		503 (Service Unavailable).
Синтаксис:	CBandExceededURL URL
Пример:		CBandExceededURL http://muff.kiev.ua/forbidden.html

Ключ:		CBandExceededSpeed
Описание:		Задает максимальную скорость, до которой mod_cband понизит скорость в случае
		превышения квоты.
Синтаксис:	CBandExceededSpeed kbps rps max_conn
		kbps - максимальная скорость передачи
		rps - максимальное количество запросов в секунду
		max_conn - максимальное количество одновременных подключений

Ключ:		CBandScoreboard
Описание:		Задает scoreboard-файл для виртуалхоста.
Синтаксис:	CBandScoreboard path
ПРИМЕЧАНИЕ: 	Файл должен быть доступен для записи пользователем, от имени которого работает
		процесс Apache.

Ключ:		CBandPeriod
Описание:		Задает период, после которого счетчики ограничений обнуляются.
Синтаксис:	CBandPeriod period
Пример:		CBandPeriod 1W
		CBandPeriod 60М

Ключ:		CBandPeriodSlice
Описание:		Задает длину части периода.
Синтаксис:	CBandPeriodSlice slice_length
Пример:		CBandLimit 100G
		CBandPeriod 4W
		CBandPeriodSlice 1W
		Период будет разделен на 4 части (4W/1W = 4). 
		Для каждой части задано ограничение в 25G (100G/4=25G)

Ключ:		
Описание:		Задает имя cband-пользователя.
Синтаксис:	user_name >

Ключ:		CBandUserSpeed
Описание:		Задает максимальную скорость для cband-пользователя.
Синтаксис:	CBandUserSpeed  kbps rps max_conn
		kbps - максимальная скорость передачи
		rps - максимальное количество запросов в секунду
		max_conn - максимальное количество одновременных подключений
Пример:		CBandUserSpeed 100kb/s 10 5

Ключ:		CBandUserLimit
Описание:		Задает квоту cband-пользователя.
Синтаксис:	CBandUserLimit limit
		Лимит - доступные величины: K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi), Gi (gibi)
Пример: CBandUserSpeed 10M Задает квоту 10*1000*1000 байт CBandUserSpeed 10Mi Задает квоту 10*1024*1024 байт

Ключ:		CBandUserClassLimit
Описание:		Задает квоту cband-пользователя в зависимоти от класа назначения.
Синтаксис:	CBandUserClassLimit class_name limit
		class_name - название определенного класа
		Лимит - доступные величины: K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi), Gi (gibi)

Ключ:		CBandUserExceededURL
Описание:		Задает URL, на который будут перенаправлены запросы, когда квота cband-пользователя
		будет превышена.
Синтаксис:	CBandUserExceededURL URL
ПРИМЕЧАНИЕ: 	Если не указать URL, при достижении лимита будет отправлен код ответа 
		503 (Service Unavailable).
Пример:		CBandUserExceededURL http://muff.kiev.ua/forbidden.html

Ключ:		CBandUserExceededSpeed
Описание:		Задает максимальную скорость для cband-пользователя после превышения квоты.
Синтаксис:	CBandUserExceededSpeed kbps rps max_conn
		kbps - максимальная скорость передачи
		rps - максимальное количество запросов в секунду
		max_conn - максимальное количество одновременных подключений
Пример:		CBandUserExceededSpeed 10kb/s 5 3

Ключ:		CBandUserScoreboard
Описание:		Задает scoreboard-файл для cband-пользователя.
Синтаксис:	CBandUserScoreboard path
ПРИМЕЧАНИЕ: 	Файл должен быть доступен для записи пользователем, от имени которого работает 
		процесс Apache.

Ключ:		CBandUserPeriod
Описание:		Задает период, после которого счетчики ограничений cband-пользователя обнуляются.
Синтаксис:	CBandUserPeriod period
Пример:		CBandUserPeriod 1W
		CBandUserPeriod 60М

Ключ:		CBandUserPeriodSlice
Описание:		Задает длину части периода для cband-пользователя.
Синтаксис:	CBandUserPeriodSlice slice_length
Пример:		CBandUserLimit 100G
		CBandUserPeriod 4W
		CBandUserPeriodSlice 1W
		Период будет разделен на 4 части (4W/1W = 4).
		Для каждой части задано ограничение в 25G (100G/4=25G)

Итак, попробуем ограничить ресурсы для определенного виртуального хоста. Чтобы упростить задачу, пусть на этом виртуальном хосте будет установлен Speedtest.

В конфигурационный файл виртуалхоста добавлены следующие переменные:

CBandSpeed 1024 10 30
CBandRemoteSpeed 256 4 4
CBandExceededURL http://muff.kiev.ua/
CBandLimit 15Mi
CBandPeriod 4W
CBandScoreboard /usr/local/etc/apache22/scoreboard/test.muff.kiev.ua.scoreboard

Создадим каталог, где будут храниться scoreboard-файлы и выставим необходимые права:

# mkdir /usr/local/etc/apache22/scoreboard

# chown -R www:www /usr/local/etc/apache22/scoreboard

Перезапускаем Apache, чтобы изменения вступили в силу:

# apachectl graceful

Проверяем, сработали ли ограничения по скорости:

Image

Как видим, ограничения сработали только на исход (относительно сервера), а на вход ограничения не работают. Но, на мое  мнение, это не так и страшно.

Поганял еще Speedtest, чтобы достигнуть квоты в 15 мегабайт. По достижению квоты, сработал ключ CBandExceededURL, соответственно был перенаправлен на указанный URL.

Все доступные возможности проверять не стал, остановился только на указанных.

Кстати, mod_cband также поддерживает возможность отображения статистики. Для активации даной возможности необходимо добавить в конфигурационный файл виртуалхоста следующий блок:

<Location /cband-status>
        SetHandler cband-status
</Location>
<Location /cband-status-me>
        SetHandler cband-status-me
</Location>
 

После внесения изменений необходимо перезапустить веб-сервер:

# apachectl graceful

Для просмотра статистики необходимо зайти по ссылке http://имя_виртуального_хоста/cband-status. Результат будет примерно следующий:

 

Image 

Основные вожможности модуля рассмотрели. Для более детального ознакомления советую ознакомиться с документацией, тем более что доступно множество примеров.

Ваша оценка: Нет Средняя: 2.8 (4 голоса)

Вставай, Україно!

Литература

Админ не грустный, он завис.