APACHE中限制IP连接数与IP并发数和流量控制
发布:smiling 来源: PHP粉丝网 添加日期:2013-11-27 11:52:02 浏览: 评论:0
本文章来给各位同学总结一下APACHE中限制IP连接数与IP并发数和流量控制实现方法,如果只限制连接数据我们可以直接使用limit,如果要限制其它的需要使用其它第三方模块了。
利用Limit模块限制IP连接数
系统版本:centos6.3,APACHE版本:apache2.42(编译安装)
1.配置Limit模块
#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
- #vi Makefile
找到APXS这行,改成
- APXS=/usr/local/apache2/bin/apxs
- #make && make install
全局变量范例:
- < 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 >
- # vi /usr/local/apache2/conf/httpd.conf
- --------------------
- ExtendedStatus On
- LoadModule limitipconn_module modules/mod_limitipconn.so
- <IfModule mod_limitipconn.c>
- <Location />
- MaxConnPerIP 6
- NoIPLimit image/*
- </Location>
- </IfModule>
- -------------------
2、配置webbench对网站进行压力测试:
- #wget http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gz
- #tar zxvf webbench-1.5.tar.gz
- #cd webbench-1.5
- #make && make install
3、使用:
webbench -c 500 -t 30 http://127.0.0.1/
参数说明:-c表示并发数,-t表示时间(秒)
4、测试结果示例:
- Webbench - Simple Web Benchmark 1.5
- Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
- Benchmarking: GET http://127.0.0.1/
- 500 clients, running 30 sec.
- Speed=3230 pages/min, 11614212 bytes/sec.
- Requests: 1615 susceed, 0 failed.
Apache限制一个IP的连接数
Apache最大的优点在于它是个模块化的程序,缺乏什么样的功能就可以单独开发相应的功能模块,然后加到Apache上就可以了,项目中一个客户的平台上资源较多,很多人都用多线程下载工具下载,导致服务器负载很大,于是便想到了限制IP的连接数,如果Apache是1.x版本的,那么从http://dominia.org/djao/limitipconn.html 这里下载对应的Linux版本的(windows的没有),如果是2.x版本的,那么从http://dominia.org/djao/limitipconn2.html下载Linux的或者Windows的,如果用在Linux上,那么安装方法上面写的很清楚,如果是windows的,把下载的release目录下的mod_limitipconn.dll放到Apache的安装目录的modules目录下;
然后修改Apache的配置文件httpd.conf,这里不管Linux还是Windows都是一样的,如果是2.0首先找到 httpd.conf 中的 LoadModule status_module modules/mod_status.so,把这句话前面的#去掉,然后加入如下内容:
- ExtendedStatus On
- LoadModule limitipconn_module modulesmod_limitipconn.dll
- <IfModule mod_limitipconn.c>
- <Location /resource>
- MaxConnPerIP 3
- # exempting images from the connection limit is often a good
- # idea if your web page has lots of inline images, since these
- # pages often generate a flurry of concurrent image requests
- NoIPLimit image/*
- </Location>
- </IfModule>
里面/resource是制定限定IP的目录,然后MaxConnPerIP是限定每个IP的并发连接数,NoIPLimit image/* 是排除resource下不限定的目录。
Apache限制IP并发数和流量控制
使用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:
- BandWidth localhost 0 #对localhost不限速
- BandWidth 192.168.1.5 102400 #对192.168.1.5限速为100KB
- BandWidth “u:^Mozilla(.*)” 10240 #用mozilla时限速10KB
- BandWidth “u:wget” 102400 #如果用wget下载时限速10KB
- MinBandWidth all -1 #保证每个客户端最高速度可达10KB
- LargeFileLimit .jpg 100 10240 #jpg文件超过100KB,限速10KB
- #下面的510挺好,如果不设置,apache自己会报错,就根报404差不多,页面非常的丑
- ErrorDocument 510 /exceed_speed.html
- BandWidthError 510
- MaxConnection all 10 #所有ip最大连接数为10
- MaxConnection 192.168.1.5 5
Tags: APACHE 限制 IP连接数 IP并发数
相关文章
- ·在apache下限制每个虚拟主机的并发数(2013-11-14)
- ·APACHE禁止图片盗链(2013-11-14)
- ·Apache下的虚拟主机设置(2013-11-14)
- ·Apache中禁止IP段,在httpd.conf中的写法(2013-11-14)
- ·用Apache的rewrite生成伪静态页面(2013-11-14)
- ·HTTP/Apache 错误代码汇总(2013-11-14)
- ·Apache性能优化技巧(2013-11-22)
- ·用Session代替Apache服务器验证(2013-11-22)
- ·Apache中httpd.conf的中文件详解(2013-11-22)
- ·Apache中.Htaccess文件的功能写法(2013-11-22)
- ·如何让apache支持.htaccess并设置404错误页(2013-11-22)
- ·apache 虚拟主机配置[别名配置方法](2013-11-22)
- ·apache 服务器网站不能访问(2013-11-22)
- ·apache教程:.htaccess用法(2013-11-22)
- ·Apache二级域名配置方法(2013-11-22)
- ·apache 封IP基础教程(2013-11-22)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)