使用mod_limitipconn.c來限制apache的併發數
下載mod_limitipconn.c
http://dominia.org/djao/limit/mod_limitipconn-0.04.tar.gz
http://dominia.org/djao/limit/mod_limitipconn-0.04-1.i386.rpm
(proxy client detection feature not enabled)
http://dominia.org/djao/limit/mod_limitipconn-0.04-1.src.rpm
我用的是tar包下載的是mod_limitipconn-0.04.tar.gz,(該模塊已經可以支持apache2)在伺服器上執行# wget http://dominia.org/djao/limit/mod_limitipconn-0.04.tar.gz 下載到本地
然後執行下面的命令編譯安裝.我的apache位於/usr/local/apache目錄
解壓縮:
[root@ns chenlf]# tar zxvf mod_limitipconn-0.04.tar.gz
mod_limitipconn-0.04/
mod_limitipconn-0.04/Makefile
mod_limitipconn-0.04/README
mod_limitipconn-0.04/apachesrc.diff
mod_limitipconn-0.04/mod_limitipconn.c
mod_limitipconn-0.04/ChangeLog
編譯安裝:
[root@ns chenlf]# cd mod_limitipconn-0.04
[root@ns mod_limitipconn-0.04]# ls
apachesrc.diff ChangeLog Makefile
mod_limitipconn.c README
[root@ns mod_limitipconn-0.04]
# /usr/local/apache/bin/apxs -c -i -a mod_limitipconn.c
gcc -DLINUX=22 -I/usr/include/db1 -fpic -DSHARED_MODULE -I
/usr/local/apache/include -c mod_limitipconn.c
gcc -shared -o mod_limitipconn.so mod_limitipconn.o
[activating module `limitipconn' in /usr/local
/apache/conf/httpd.conf]
cp mod_limitipconn.so /usr/local/apache/libexec/mod_limitipconn.so
chmod 755 /usr/local/apache/libexec/mod_limitipconn.so
cp /usr/local/apache/conf/httpd.conf
/usr/local/apache/conf/httpd.conf.bak
cp /usr/local/apache/conf/httpd.conf.new
/usr/local/apache/conf/httpd.conf
rm /usr/local/apache/conf/httpd.conf.new
修改配置文件:
1全局控制:
在httpd.conf加上以下幾行:
< IfModule mod_limitipconn.c >
< Location / > # 所有虛擬主機的/目錄
MaxConnPerIP 3 # 每IP只允許3個併發連接
NoIPLimit image/* # 對圖片不做IP限制
< /Location >
< Location /mp3 > # 所有主機的/mp3目錄
MaxConnPerIP 1 # 每IP只允許一個連接請求
OnlyIPLimit audio/mpeg video # 該限制只對視頻和音頻格式的文件
< /Location >
< /IfModule >
2 局部限制,你也可以在虛擬主機的配置文件裡設置IP限制,方法是完全一樣:
< VirtualHost xx.xxx.xx.xx >
ServerAdmin chenlf@chinalinuxpub.com
DocumentRoot /home/my
ServerName www.my.com
< IfModule mod_limitipconn.c >
< Location / > # 所有虛擬主機的/目錄
MaxConnPerIP 5 # 每IP只允許3個併發連接
NoIPLimit image/* # 對圖片不做IP限制
< /Location >
< Location /mp3 > # 所有主機的/mp3目錄
MaxConnPerIP 2 # 每IP只允許一個連接請求
OnlyIPLimit audio/mpeg video # 該限制只對視頻和音頻格式的文件
< /Location >
< /IfModule >
ErrorLog /home/my/logs/error_log
CustomLog /home/my/logs/access_log common
< /VirtualHost >
3 此外必須將apache的ExtendedStatus設置為ON.在httpd.conf找到
# ExtendedStatus On
去掉前面的注釋即可
好了,全部配置結束,重起apache就可以生效了
|