本文章来给各位同学总结一下APACHE中限制IP连接数与IP并发数和流量控制实现方法,如果只限制连接数据我们可以直接使用limit,如果要限制其它的需要使用其它第三方模块了
使用mod_limitipconn模块限制IP并发连接数
安装:
| wget http://dominia.org/djao/limit/mod_limitipconn-0.24.tar.bz2 tar jxvf mod_limitipconn-0.24.tar.bz2 cd mod_limitipconn-0.24 /usr/local/apache2/bin/apxs -c -i mod_limitipconn.c |
编辑httpd.conf
| ExtendedStatus On LoadModule limitipconn_module modules/mod_limitipconn.so <ifModule mod_limitipconn.c> <location /> #对应根目录 MaxConnPerIP 5 #最大并发数为5 NoIPLimit image/* #对图片不做限制 </location> <location /test> #对根目录下的test目录做限制 MaxConnPerIP 2 #最大并发数为2 </location> </ifModule> |
如果想限制虚拟主机的ip并发连接数,可以修改extra/httpd-vhost.conf把 IfModule mod_limitipconn.c 这一段复制到Virtualhost中就可以了。
测试:
测试很简单,把最大连接数调小一点,随便一个浏览器访问页面,然后按着F5,让页面不断刷新,一下就可以弹出503错误
使用mod_bandwidth模块限制带宽
mod_bandwidth可以对IP的并发数进行控制,也可以对下载流量进行控制,也可以对某个目录的流量进行控制。
安装:
| wget http://bwmod.sourceforge.net/files/mod_bw-0.7.tgz tar zxvf mod_bw-0.7.tgz cd mod_bw /usr/local/apache2/bin/apxs -c -i mod_bw.c |
编辑httpd.conf配置文件:
| LoadModule bw_module modules/mod_bw.so <virtualHost *:80> ServerName vhost1.cszhi.com DocumentRoot /var/www/vhost1 BandwidthModule On ForceBandWidthModule On Bandwidth all 1024000 MinBandwidth all 50000 #每个客户端最高速度可达50KB LargeFileLimit * 500 50000 MaxConnection all 6 </virtualHost> |
其它参数事例说明,详细的见源码包里的mod_bw.txt:









