All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
delphi单行编辑框组件(TEdit)使用实例
PHP学习宝典-第六章(续篇)_[PHP教程]
AJAX学习基础:简单介绍数据岛使用方法_.net资料_编程技术
经典:10个重要的PHP网络信息函数说明_php资料_编程技术
PHP入门:在PHP关于变量的使用介绍_[PHP教程]
visual c++中字体类CFont的用法
PHP基础:PHP的语法_[PHP教程]
PHP技术:回帖脱衣服的图片实现_php资料_编程技术
SQLSERVER中,数据库同步的实现_[SQL Server教程]
SQL server2000中char和varchar字符型数据类型的区别_[SQL Server教程]
Reading number is top 10 pictures
代沟,真好
The real super beauty6
NeedWallpaper6
无题
红楼梦金陵十二钗(1)
美丽的桂林风光1
The real super beauty12
中国女孩大胆自拍,显露完美身材3
Shandong jinan is about to dismantle a one hundred-year history of the building
Absolutely shocked. National geographic 50 animal photographys8
Download software ranking
Tram sex maniac 2 (H) rar bag17
仙剑奇侠传98版歌曲
传奇私服架设教程-chm
Unix video tutorial7
Ashlynn Video1
Boxer's Top ten classic battle5
jBuilder2006
The hero
SP3 for SQL2000
The Bermuda triangle1
aaa published in(发表于) 2013/12/27 19:51:25 Edit(编辑)
Linux下Apache并发连接数和带宽控制_php资料_编程技术

Linux下Apache并发连接数和带宽控制_php资料_编程技术

Linux下Apache并发连接数和带宽控制_php资料_编程技术-你的首页-uuhomepage.com
Linux+Apache的稳定性、安全性和性能以及低廉的价格正在赢得越来越多的市场份额,使用Linux+Apache作网站服务器的朋友也越来越多,而Apache作为一种http服务,相比FTP总是不容易控制,特别是当网站以http方式提供软件/音乐下载时,若是每个用户都开启多个线程并没有带宽的限制,将很快达到http的最大连接数或者造成网络壅塞,使得网站的许多正常服务都无法运行。不过,Apache的使用者们早已开发出了mod_limitipconn和mod_bandwidth两个模块,来控制http的并发连接数和用户所能够使用的带宽,下面将以RedHat Linux 7.3+Apache 1.3.7来说明它们的使用方法。

一、使用mod_limitipconn限制Apache的并发连接数

mod_limitipconn可以控制每个IP地址同时连接服务器某一个目录的并发连接数,是一个非常有用的模块,其官方网页是http://dominia.org/djao/limitipconn.html,最新版本为for Apache 1.3.7的0.04,并且还有支持Apache 2.x的模块下载,由于本人使用Apache 1.3.7版本,所以请使用2.x版本Apache的朋友到其官方网站察看具体的使用方法。

mod_limitipconn for Apache 1.3x提供三种安装方式,分别是tar包、rpm安装文件和rpm源文件,由于rpm包只能用在 RedHat 7.x 版本,并且不支持检测代理服务器,所以我们一般都使用tar包的安装方式。

以管理员方式登陆服务器,然后在服务器上运行wget http://dominia.org/djao/limit/mod_limitipconn-0.04.tar.gz将mod_limitipconn的tar包下载到服务器,然后按照再运行tar zxvf mod_limitipconn-0.04.tar.gz将tar包解压缩,会在当前目录下生成mod_limitipconn-0.04目录,然后cd mod_limitipconn-0.04进入此目录,下一步就是使用apxs将目录中的mod_limitipconn.c编译。这时,我们需要确定自己的Apache安装在那个目录,并且找到apxs命令放在哪里。

通过命令whereis apxs,我们可以确定apxs命令的路径,如我的apxs命令所在为/usr/sbin/apxs,则输入/usr/sbin/apxs -c -i -a mod_limitipconn.c对mod_limitipconn.c进行编译,此命令会自动在你Apache的配置文件httpd.conf中加入需要的信息,并且将生成的mod_limitipconn.so模块拷贝到Apache的模块目录。不过为了确认此命令是否正常运作,请首先检查自己的Apache模块目录(我的是/usr/lib/apache),看内部是否含有mod_limitipconn.so文件,没有的话请将mod_limitipconn-0.04目录中生成的文件拷贝到此处。

刚才命令自动生成的httpd.conf可能有些错误,在我的系统中,它将LoadModule limitipconn_module modules/mod_limitipconn.so放在了

  
  LoadModule python_module modules/mod_python.so
  

之间,而将AddModule mod_limitipconn.c放在了

  
  AddModule mod_python.c
  

之间,直接造成了mod_limitipconn模块不能正常运行,所以请将这两行分别移动到没有的相应行中,然后请确认mod_status模块已经加载,并且在mod_status下添加了ExtendedStatus On这一行。这时我们的mod_limitipconn模块就安装完毕,下一步就是对某个目录进行并发连接数的设置了。

mod_limitipconn可以对全局和虚拟主机进行不同的限制,其语法结构都是

  
     #所限制的目录所在,此处表示主机的根目录
      MaxConnPerIP 3 #所限制的每个IP并发连接数为3个
      NoIPLimit image/* #对图片不做IP限制
    
     #所限制的目录所在,此处表示主机的/mp3目录
      MaxConnPerIP 1 #所限制的每个IP并发连接数为1个
      OnlyIPLimit audio/mpeg video #该限制只对视频和音频格式的文件
    
  

当对全局进行限制时,将这段代码放在httpd.conf文件没有VirtualHost的地方,若是对某个虚拟主机进行限制,请将其放在和之间,我们可以通过更改Location以及MaxConnPerIP方便的控制所限制的目录和并发连接数。

最后,只要重新启动Apache服务,并发连接数的限制就可以生效。

二、使用mod_bandwidth控制Apache的带宽

Apache 1.3.7实际上带有mod_bandwidth支持,只是没有此模块的so文件,我们所做的就是下载mod_bandwidth的源文件进行编译,并对mod_bandwidth进行相应的设置。

在下载之前,请先确认自己的Apache配置文件httpd.conf中是否含有

  
  LoadModule bandwidth_module modules/mod_bandwidth.so
  

以及

  
  AddModule mod_bandwidth.c
  

若是没有,请加上

  LoadModule bandwidth_module modules/mod_bandwidth.so
  AddModule mod_bandwidth.c

并且这两行必须分别加在相应区域的最前面,使得这个模块以最低的优先级运行。(不过1.3.7的Apache应该有,呵呵)。

确认后,请输入wget ftp://ftp.cohprog.com/pub/apache/module/1.3.0/mod_bandwidth.c将源文件下载到服务器,然后请使用apxs对其进行编译,编译方法和mod_limitipconn的基本相同,如我输入/usr/sbin/apxs -c mod_bandwidth.c -o /usr/lib/apache(Apache的模块目录),编译程序会自动将编译成功的mod_bandwidth.so文件放到Apache的模块目录,您也可以自己确认一下,若是不正常,拷贝过去即可。

mod_bandwidth运行时需要一些特定的目录,按照默认情况,请运行以下命令创建并更改目录的权限:

  mkdir /tmp/apachebw
  mkdir /tmp/apachebw/link
  mkdir /tmp/apachebw/master
  chmod -R 777 /tmp/apachebw

然后再打开httpd.conf文件,加上以下内容

  
    BandWidthDataDir "/tmp/apachebw/"
    BandWidthModule on
  

这时,我们就能够对所需要限制带宽的目录进行相应的设置,此处的目录请使用服务器的绝对路径。如我们想限制服务器/home/www/softicp/download/soft目录的下载速度,也就是限制网址http://download.softicp.com/soft目录下软件的下载速度,则为httpd.conf文件增加以下内容

  
   BandWidth cbifamily.com 0 #来自cbifamily.com的下载不受速度限制
   BandWidth 210.51.21 0 #来自210.51.21网段的下载不受速度限制
   BandWidth all 327680 #来自其它网段的速度都限制为327680Byte,即30KB/s
  

设置完毕后,重新启动Apache服务,即可生效。

mod_bandwidth还有许多其它有用的参数,如在中间加上MaxConnection 120则可以限制某个目录的最多连接数,当超过指定连接数时,拒绝新的连接,此参数与mod_limitipconn模块结合可以控制某个目录的最多连接人数。

其它的参数请朋友们到其官方网站http://www.cohprog.com/v3/bandwidth/doc-en.html察看相关的文档。

Apache的功能确实强大,很多功能都可以通过添加模块来实现,在http://modules.apache.org/可以找到更多的模块,我们也可以编写自己的模块来实现相应的功能。




添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.