deserts
大客部
级别: 总版主
精华:
0
发帖: 607
威望: 2 点
金钱: 1061 RMB
贡献值: 0 点
在线时间:1759(小时)
注册时间:2006-01-01
最后登录:2024-11-10
|
对apache进行一定限度的配置——Apache并发连接数和带宽控制
提供apache作为http下载服务,但是觉得如果每个人都无限制的开过多的线程,那么服务器的很多服务,肯定无法开展,因此想对apache的http下载进行一定限度的配置。找来找去,找到mod_limitipconn和mod_bandwidth两个模块。 此外kernel-patch-wrr - Extension to traffic Control/network bandwidth management 也是个很好的选择。
更正,前一段时间,曾记录可以如同下面进行配置,但后来发现这个配置法适合于apache1.3,而不适合apache2。之所以成功配置,实际上是没有正常加载相应模组,出现假成功配置现象,故特此更正这种说法。
旧有的apache1.3可以进行如下安装:
引文:
mod_limitipconn是可以采用sudo apt-get install libapache-mod-limitipconn直接安装的,安装的结果如下:
/usr/share/doc/libapache-mod-limitipconn /usr/share/doc/libapache-mod-limitipconn/copyright /usr/share/doc/libapache-mod-limitipconn/README.gz /usr/share/doc/libapache-mod-limitipconn/changelog.gz /usr/share/doc/libapache-mod-limitipconn/README.Debian /usr/share/doc/libapache-mod-limitipconn/changelog.Debian.gz /usr/share/doc/libapache-mod-limitipconn/apachesrc.diff.gz /usr/lib/apache/1.3/mod_limitipconn.so /usr/lib/apache/1.3/500mod_limitipconn.info
可见,这两个模块默认支持的是apache1.3,当然这并不能说明apache2不可以调用。在ubuntu server中安装apche2后,其modules位置位于/usr/lib/apache2/modules,很显然,pache2能 调用这两个modules,需要把mod_limitipconn.so和mod_iptos.so连接或者复制到/usr/lib/apache2/modules下:
sudo ln -s /usr/lib/apache/1.3/mod_iptos.so /usr/lib/apache2/modules/mod_iptos.so sudo ln -s /usr/lib/apache/1.3/mod_limitipconn.so /usr/lib/apache2/modules/mod_limitipconn.so
然后配置/etc/apache2/apache2.conf: mod_limitipconn的配置采用以下语法结构:
<IfModule mod_limitipconn.so> <Location /var/www> #限制/var/www目录 MaxConnPerIP 5 #每个IP并发连接数为5个 NoIPLimit image/* #对图片不做IP限制 </Location> <Location /softwares> #限制/softwares目录 MaxConnPerIP 3 #每个IP并发连接数为3个 OnlyIPLimit audio/mpeg video #只限制视频和音频文件 </Location> </IfModule> 进行全局设置的时候,把以上代码放在VirtualHost之外,如果对虚拟机限制则放在VirtualHost之内。 以下是VirtualHost的格式: <VirtualHost xxx.xxx.xxx.xxx> ... ... </VirtualHost> 修改完毕,然后重启apache2: sudo /etc/init.d/apache2 restart 出现; * Forcing reload of apache 2.0 web server... apache2: Could not determine the server's fully qualified domain name, using *.*.*.* for ServerName apache2: Could not determine the server's fully qualified domain name, using 61.157.235.176 for ServerName ...done. 这说明配置加载成功。
旧有的apache1.3要限制带宽,还模块mod_limitipconn。
而在apache2下,只需要libapache2-mod-cband就完成以上两个模块的功能,见http://cband.linux.pl/ 引文:
mod_cband is an Apache 2 module provided to solve the problem of limiting users' and virtualhosts' bandwidth usage. The current versions can set virtualhosts' and users' bandwidth quotas, maximal download speed (like in mod_bandwidth), requests-per-second speed and the maximal number of simultanous IP connections (like in mod_limitipconn)
。
采用sudo apt-get install libapache2-mod-cband,安装的结果如下:
/usr/lib/apache2/modules/mod_cband.so /usr/share/doc/libapache2-mod-cband /usr/share/doc/libapache2-mod-cband/changelog.gz /usr/share/doc/libapache2-mod-cband/faq.txt.gz /usr/share/doc/libapache2-mod-cband/README.Debian /usr/share/doc/libapache2-mod-cband/copyright /usr/share/doc/libapache2-mod-cband/examples /usr/share/doc/libapache2-mod-cband/examples/vhosts.conf.example /usr/share/doc/libapache2-mod-cband/examples/vhosts2.conf.example /usr/share/doc/libapache2-mod-cband/examples/vhosts3.conf.example /usr/share/doc/libapache2-mod-cband/changelog.Debian.gz /usr/share/doc/libapache2-mod-cband/documentation.txt.gz /etc/apache2/mods-available /etc/apache2/mods-available/cband.load /etc/apache2/mods-available/cband.conf
在debian 系统中,/etc/apache2下是其配置的相关文件,可用模组存放在/etc/apache2/mods-available/中,而启用模组只需要把/etc/apache2/mods-available/中的模组链接到/etc/apache2/mods-enabled即可。
因此,要想cband生效,需要进行如下工作: sudo ln -s /etc/apache2/mods-available/cband.load /etc/apache2/mods-enabled/cband.load
sudo ln -s /etc/apache2/mods-available/cband.conf /etc/apache2/mods-enabled/cband.conf
如果要限制默个虚拟站点,那么修改/etc/apache2/sites-enabled中的站点配置文件,如果要对所有站点进行限制,那么修改cband.conf文件:
/etc/apache2/sites-enabled中的配置文件,注意:
引文:
NameVirtualHost * <VirtualHost *> ServerName www.example.com ServerAdmin lmingwei@gmail.com
DocumentRoot /var/www CBandSpeed 10024 600 300 #CBandSpeed 限制 www.example.com 的虚拟主机的总访问速度为 10024kbps, 最大每秒 600个请求和最大每秒 30 0个连接. CBandRemoteSpeed 210kb/s 3 3 #CBandRemoteSpeed 限制 www.example.com 的虚拟主机的任何个人的访问速度为每秒 210kb, 最大每秒 3 个请求和最大每秒 3 个连接. <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all # Uncomment this directive is you want to see apache2's # default start page (in /apache2-default) when you go to / #RedirectMatch ^/$ /apache2-default/ </Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory>
ErrorLog /var/log/apache2/error.log
而修改cband.conf,其实就是加入:
CBandSpeed 10024 600 300 #CBandSpeed 限制 www.example.com 的虚拟主机的总访问速度为 10024kbps, 最大每秒 600个请求和最大每秒 30 0个连接. CBandRemoteSpeed 210kb/s 3 3 #CBandRemoteSpeed 限制 www.example.com 的虚拟主机的任何个人的访问速度为每秒 210kb, 最大每秒 3 个请求和最大每秒 3 个连接.
|
常州电信/网通机房,100M共享/10M独享/1000M共享/100M独享/电信+网通双线路服务器托管
Tel:0519-89991155 企业QQ:4006023839 5y6s Inc.
|
[楼 主]
|
Posted: 2008-01-27 23:33 |
| |