QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1539|回复: 15

关于Linux下Apache并发连接数和带宽控制的问题

[复制链接]
发表于 2004-9-24 09:53:16 | 显示全部楼层 |阅读模式
Apache作为一种http服务,相比FTP总是不容易控制,特别是当网站以http方式提供软件/音乐下载时,若是每个用户都开启多个线程并没有带宽的限制,将很快达到http的最大连接数或者造成网络壅塞,使得网站的许多正常服务都无法运行。为了解决上面问题,我找了很多资料,奋斗了几天的时间,最终使用mod_limitipconn限制Apache的并发连接数,代码如下
<VirtualHost 61.190.73.225:1000>
ServerAdmin [email protected]
DocumentRoot /var/www/phpmyadmin
ServerName 61.190.73.225:1000
<IfModule mod_limitipconn.c>
<Location /> # 所有虚拟主机的/目录
MaxConnPerIP 1 # 每IP只允许一个连接请求??
OnlyIPLimit audio/mpeg video # 该限制只对视频和音频格式的文件
NoIPLimit image/* # 对图片不做IP限制
</Location>
</IfModule>
</VirtualHost>
前面的安装模块我省略啦~~APACHE重启也正常~~没提示错误, 说明模块加载的是正确的~~
我还以为这样就可以实现用户下载多线程的限制, 并作了实验,我把2001.mpeg文件放到
/var/www/phpmyadmin下面,然后在另一台机器上用网际放最大线程下载http://61.190.73.225:1000/2001.mpeg文件,结果8个线程可以同时用,晕~~~没达到我想要的效果!
望高手指点~~
发表于 2004-9-24 12:37:10 | 显示全部楼层
必须将 ExtendedStatus 设置为 ON

还有,你把 OnlyIPLimit 和 NoIPLimit 指令同时写到一个块里是什么意思?   请简单的用逻辑解释一下
回复

使用道具 举报

 楼主| 发表于 2004-9-24 14:40:49 | 显示全部楼层
ExtendedStatus  ON   打开的

OnlyIPLimit 和 NoIPLimit 分别视频和音频格式的文件和图片的,上面不是有说明吗?
回复

使用道具 举报

发表于 2004-9-24 18:58:30 | 显示全部楼层
你的逻辑还真是棒吔!

OnlyIPLimit audio/mpeg video # 该限制只对视频和音频格式的文件
NoIPLimit image/* # 对图片不做IP限制

然后……如果你一个文件不是音频视频不是图片……该限制还是不限制呐?让我想想……

劝你只保留一条指令,并确认一下 mime 设置。

另,有没有试过把该段指令直接写在全局配置里看一下
回复

使用道具 举报

 楼主| 发表于 2004-9-27 09:34:58 | 显示全部楼层
设置应该没问题啊~~

都除掉了一条指令啦,也不行,在全局配置下也不行,晕啊~~
回复

使用道具 举报

发表于 2004-9-27 13:57:08 | 显示全部楼层
在本机看看 http://localhost/server-info (如果配置里没有设置就设置一下), 看看到底 mod_limitipconn 装上了没有。
回复

使用道具 举报

发表于 2004-9-27 14:06:27 | 显示全部楼层
对了,你之前有没有 LoadModule limitipconn_module  extramodules/mod_limitipconn.so ?
回复

使用道具 举报

 楼主| 发表于 2004-9-27 15:24:17 | 显示全部楼层
LoadModule limitipconn_module libexec/mod_limitipconn.so

模块装就自动加上了这句~~
回复

使用道具 举报

 楼主| 发表于 2004-9-28 10:38:52 | 显示全部楼层
我想问一句,在config apache时,没加--enable-module=rewrite,不会影响并发限制吧?

在一些文章里看有加这项
回复

使用道具 举报

 楼主| 发表于 2004-9-28 10:58:36 | 显示全部楼层
cd apache
patch -p1 < ../mod_limitipconn-0.04/apachesrc.diff
cp ../mod_limitipconn-0.04/mod_limitipconn.c src/modules/extra/
./configure --prefix=/usr/local/apache --enable-module=so --htdocsdir=/var/www --logfiledir=/usr/apachelog --activate-module=src/modules/extra/mod_limitipconn.c --with-forward
make
make instal

没问题吧
回复

使用道具 举报

发表于 2004-9-28 12:50:05 | 显示全部楼层
[quote:255918d001="梵人"]我想问一句,在config apache时,没加--enable-module=rewrite,不会影响并发限制吧?

在一些文章里看有加这项[/quote]

不影响。

真是不知道你是怎么弄的了,我按照你的流程做了一遍,一点问题都没有。不过我用的是 apache-1.3.31, mod_limitipconn-0.04。

你把<IfModule>条件去掉,看能不能启动 apache。
回复

使用道具 举报

 楼主| 发表于 2004-9-28 12:55:05 | 显示全部楼层
我用的也是apache1.3.31

我也纳闷着呢
回复

使用道具 举报

发表于 2004-9-28 13:16:54 | 显示全部楼层
再问最后一句:
你的配置文件里“ MaxConnPerIP 1 # 每IP只允许一个连接请求??” 这样的地方,不是真的有“#”和后面的字吧
回复

使用道具 举报

 楼主| 发表于 2004-9-28 13:35:52 | 显示全部楼层
我去掉了<IfModule>,居然可以启动~~有问题吧
回复

使用道具 举报

发表于 2004-9-28 14:14:53 | 显示全部楼层
那就是模块加载没有问题。这样还是不能限制?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-7 14:29 , Processed in 0.082382 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表