トラフィック制御する方法(limitipconn)
Created: 9 September 2007
設定の小技 (9 September 2007)
ダウンロードから基本設定まで (9 September 2007)
制限をなしにする方法
IPの数を設定する値を、"0"にすれば無制限の意味になります。
特定のファイルを制限する場合
OnlyIPLimit audio/* video/*
特定のファイルを以外を制限する場合
NoIPLimit audio/* video/*
".htaccess"で設定する方法
<Limit GET> MaxConnPerIP 2 : </Limit>
"mod_limitipconn"のダウンロード
"mod_limitipconn"は以下からダウンロードできます。
http://dominia.org/djao/limitipconn2.html
2007年9月9日に、"mod_limitipconn-0.22.tar.gz" がダウンロードできました。
"mod_limitipconn"のインストール
以下の手順で実行すればインストールまで完了します。
# tar zxvf mod_limitipconn-0.22.tar.gz # cd mod_limitipconn-0.22.tar.gz # make install apxs -c mod_limitipconn.c /usr/lib/apr-1/build/libtool --silent --mode=compile gcc -prefer-pic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -pthread -I/usr/include/httpd -I/usr/include/apr-1 -I/usr/include/apr-1 -c -o mod_limitipconn.lo mod_limitipconn.c && touch mod_limitipconn.slo /usr/lib/apr-1/build/libtool --silent --mode=link gcc -o mod_limitipconn.la -rpath /usr/lib/httpd/modules -module -avoid-version mod_limitipconn.lo apxs -c -i -a -n 'limitipconn' mod_limitipconn.c /usr/lib/apr-1/build/libtool --silent --mode=compile gcc -prefer-pic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -pthread -I/usr/include/httpd -I/usr/include/apr-1 -I/usr/include/apr-1 -c -o mod_limitipconn.lo mod_limitipconn.c && touch mod_limitipconn.slo /usr/lib/apr-1/build/libtool --silent --mode=link gcc -o mod_limitipconn.la -rpath /usr/lib/httpd/modules -module -avoid-version mod_limitipconn.lo /usr/lib/httpd/build/instdso.sh SH_LIBTOOL='/usr/lib/apr-1/build/libtool' mod_limitipconn.la /usr/lib/httpd/modules /usr/lib/apr-1/build/libtool --mode=install cp mod_limitipconn.la /usr/lib/httpd/modules/ cp .libs/mod_limitipconn.so /usr/lib/httpd/modules/mod_limitipconn.so cp .libs/mod_limitipconn.lai /usr/lib/httpd/modules/mod_limitipconn.la cp .libs/mod_limitipconn.a /usr/lib/httpd/modules/mod_limitipconn.a chmod 644 /usr/lib/httpd/modules/mod_limitipconn.a ranlib /usr/lib/httpd/modules/mod_limitipconn.a PATH="$PATH:/sbin" ldconfig -n /usr/lib/httpd/modules ---------------------------------------------------------------------- Libraries have been installed in: /usr/lib/httpd/modules If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,--rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- chmod 755 /usr/lib/httpd/modules/mod_limitipconn.so [activating module `limitipconn' in /etc/httpd/conf/httpd.conf] #
設定する
"/etc/httpd/conf.d/limitipconn.conf"を以下のように作成します。
LoadModule limitipconn_module /usr/lib/httpd/modules/mod_limitipconn.so ExtendedStatus On <Location /test1> MaxConnPerIP 2 NoIPLimit test/* </Location> <Location /test2> MaxConnPerIP 2 NoIPLimit audio/* video/* </Location> <FilesMatch "\.(zip|mp?g|iso)$"> MaxConnPerIP 1 </FilesMatch>