Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> WWW —> mod_limitipconn

mod_limitipconn - ограничение одновременных подключений по IP

Автор: lissyara.


    Модуль для апаче 1.3 - mod_limitipconn позволяющий вводить ограничения по IP-адресам, имеется ввиду чило подключений с одного IP. Очень удобно - если какой-то варезник, хотя, народ нынче, уже умеет пользоваться прокси-серверами.
   В портах есть модуль для второго апача, и для первого:

/usr/home/lissyara/>cd /usr/ports
/usr/ports/>make search name='mod_limitipconn'
Port:   mod_limitipconn-0.04_1
Path:   /usr/ports/www/mod_limitipconn
Info:   Limit the number of simultaneous connections from single client IP address
Maint:  ychsiao@ychsiao.org
B-deps: apache-1.3.34_4 expat-2.0.0 rc_subr-1.31_1
R-deps: apache-1.3.34_4 expat-2.0.0 rc_subr-1.31_1
WWW:    http://dominia.org/djao/limitipconn.html

Port:   mod_limitipconn-0.22
Path:   /usr/ports/www/mod_limitipconn2
Info:   Allows you to limit the number of simultaneous connexions
Maint:  ychsiao@ychsiao.org
B-deps: apache-2.0.55_3 expat-2.0.0 libiconv-1.9.2_1 rc_subr-1.31_1
R-deps: apache-2.0.55_3 expat-2.0.0 libiconv-1.9.2_1 rc_subr-1.31_1
WWW:    http://dominia.org/djao/limitipconn2.html

/usr/ports/>
/usr/ports/>cd /usr/ports/www/mod_limitipconn
/usr/ports/www/mod_limitipconn/>make && make install && make clean

   После установки читаем документацию, и идём править конфиг апача /usr/local/etc/apache/httpd.conf:

# эти строки раскомментируем:
LoadModule limitipconn_module libexec/apache/mod_limitipconn.so
AddModule mod_limitipconn.c

# а вот про эту директиву неплохо бы почитать, прежде чем включать.
# если включаете - перенесите server-info в другое место.
# (Вернее - название ему другое дайте. чтоб никто не догадался.)
ExtendedStatus On

<IfModule mod_limitipconn.c>
# сразу говорю косяк с которым я влетел - это не пути от корня сервера,
# а от корня сайта :) Хорошо догадался посмотреть что в server-info
# написано... :)
    <Location /downloads>
        MaxConnPerIP 3
        # на картинки делаем анлим (цель - разгрузка проца сервера
        # т.к. на генерацию динамических страниц требуется больше
        # времени, чем просто отдать рисунок, на самом деле в нынешних
        # ралиях вероятней обратное - мощщи немеряно а канал хиленький...)
        # Кстати, тут указаны типы mime а не директрия.
        NoIPLimit image/*
    </Location>
# исчо раз - это путь от корня сайта!
    <Location /lissyara/muzik/rammstein>
        MaxConnPerIP 1
        # ограничиваем только мультимедийный контент
        # на остальное не нужно ограничений
        OnlyIPLimit audio/mpeg video
    </Location>
</IfModule>

Затем перезапускаем апач:

/usr/home/lissyara/>/usr/local/etc/rc.d/apache.sh restart
Stopping apache.
Waiting for PIDS: 3479.
Starting apache.
/usr/home/lissyara/>

И видим такое в логах:

[Wed Feb 15 14:53:45 2006] [error] access to /downloads/distfiles.tar failed for 192.168.20.141, reason: Client exceeded connection limit.
[Wed Feb 15 14:53:46 2006] [error] access to /downloads/distfiles.tar failed for 192.168.20.141, reason: Client exceeded connection limit.
[Wed Feb 15 14:53:50 2006] [error] access to /downloads/distfiles.tar failed for 192.168.20.141, reason: Client exceeded connection limit.
[Wed Feb 15 15:06:30 2006] [error] access to /server-info failed for 192.168.20.141, reason: Client exceeded connection limit.

А я увидел в браузере:

Service Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.



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


Sergey, 2008-02-25 в 16:16:25

Все работает, но на данный моент есть патчик
ftp://ftp.opennet.ru/pub/web/modules/limits/

mod_limitipconn-0.04-vhost.patch


как его корректно установить ?

stooper, 2008-06-04 в 2:23:44

ну, судя по всему так:
tar xzvf apache_1.3.27.tar.gz
tar xzvf mod_limitipconn-0.04.tar.gz
cd apache_1.3.27
patch -p1 < ../mod_limitipconn-0.04/apachesrc.diff
cp ../mod_limitipconn-0.04/mod_limitipconn.c src/modules/extra/
./configure --activate-module=src/modules/extra/mod_limitipconn.c --with-forward
make
make install



 

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

© lissyara 2006-10-24 08:47 MSK

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