容器技术交流

 找回密码
 立即注册
查看: 4084|回复: 8

服务器有电影和音频文件,请问如何限制连接线程?最好一个ip只能开启1个线程

[复制链接]
发表于 2009-11-15 21:11:44 | 显示全部楼层 |阅读模式
服务器有电影和音频文件,请问如何限制连接线程?最好一个ip只能开启1个线程


ipfw add 00110 allow tcp from any to me setup limit src-addr 30

这条命令,无效....重启之后就自动消失了。

环境是freebsd 7.2
famp5.1.0
 楼主| 发表于 2009-11-22 17:05:26 | 显示全部楼层
顶上去,
大家是怎么解决的呢?
发表于 2009-11-22 17:06:22 | 显示全部楼层
我不知道 啊。
发表于 2009-11-22 17:07:23 | 显示全部楼层
apache2.2.8 使用mod_limitipconn 限制用户下载使用线程数目- 免费 ...
发表于 2009-11-22 17:12:01 | 显示全部楼层
1. 先下载 mod-limitipconn
http://dominia.org/djao/limitipconn2.html上下载对应的版本,我下载的是for apache 2.2的版本(mod-limitipconn-0.23.tar.bz2)。
   下载方面,我也会在文章最后提供下载,我现在把它传进Linux下。
2. 安装
# tar xjvf mod_limitipconn-0.23.tar.bz2
mod_limitipconn-0.23/
mod_limitipconn-0.23/Makefile
mod_limitipconn-0.23/mod_limitipconn.c
mod_limitipconn-0.23/README
mod_limitipconn-0.23/ChangeLog
mod_limitipconn-0.23/INSTALL
mod_limitipconn-0.23/LICENSE
# cd mod_limitipconn-0.23
这里注意路径,也就是你自己apache安装的路径。
# /usr/local/apache2/bin/apxs -c -i -a mod_limitipconn.c
该步骤会自动将mod_limitipconn.so编译到apache对应的modules目录中,
还会在httpd.conf文件中自动添加loadmodules语句
最后 修改httpd.conf
vi /etc/httpd.conf
我把下面的修改信息 添加到配置文件最后面。
ExtendedStatus On
<IfModule limitipconn_module>
       <Location />
       MaxConnPerIP 3
       NoIPLimit image/*
       </Location>
       <Location /mp3>
       MaxConnPerIP 1
       OnlyIPLimit audio/mpeg video
       </Location>
</IfModule>
最后保存退出。
重启apache
[root@localhost /]# /usr/local/apache2/bin/apachectl stop
[root@localhost /]# /usr/local/apache2/bin/apachectl start
接着再使用迅雷继续下载刚才的视频文件,观察线程链接情况。
可以看到 5个线程中,有2个线程是不能读取数据的,只有3个线程可以进行连接读取数据。
MaxConnPerIP 3   这个就是配置文件中 所限制的 ip并发连接数目,也就是
我们进行下载允许的线程连接数目。好了,演示就到这里,谢谢大家观看
 楼主| 发表于 2009-11-22 17:19:30 | 显示全部楼层
谢谢!

我用的是nginx


防盗链配置:
Nginx的防盗链
一般的防盗链如下:
location ~* \.(gif|jpg|png|swf|flv)$ {
valid_referers none blocked www.ccvita.com www.phpq.net;
if ($invalid_referer) {
rewrite ^/ http://www.ccvita.com/403.html;
#return 404;
}
}
第一行:gif|jpg|png|swf|flv
表示对gif、jpg、png、swf、flv后缀的文件实行防盗链
第二行:www.ccvita.com www.phpq.net
表示对www.ccvita.com www.phpq.net这2个来路进行判断
if{}里面内容的意思是,如果来路不是指定来路就跳转到错误页面,当然直接返回404也是可以的。


nginx有个模块叫做 ngx_http_referer_module,通过这个模块,可以很方便的做防盗链设置
一般常用的方法是在 server或者location段中加入
valid_referers   none blocked www.mydomain.com mydomain.com;
详见下面的例子
其中 none 表示 空的来路,也就是直接访问,比如直接在浏览器打开一个图片
blocked 表示被防火墙标记过的来路
server_names 也就是域名了。0.5.33以后的版本中,可以用*.admin99.com来表示所有的二级域名

一。针对不同的文件类型
location ~ .*\.(wma|wmv|asf|mp3|mmf|zip|rar|jpg|gif|png|swf|flv)$ {
     valid_referers none blocked *.admin99.net admin99.net;
     if ($invalid_referer) {
     #rewrite ^/ http://www.admin99.net/403.html;
     return 403;
      }
}

二。针对不同的目录
location /img/ {
    root /data/img/;
    valid_referers none blocked *.admin99.net admin99.net;
    if ($invalid_referer) {
                   rewrite ^/
                   #return   403;
    }
}

三。以上是nginx自带的防盗链功能,另外还可以利用 nginx 的第三方模块 ngx_http_accesskey_module 来实现下载文件的防盗链,不做讨论。
 楼主| 发表于 2009-11-22 17:20:42 | 显示全部楼层
上面是简易 防盗


服务器有电影和音频文件,请问如何限制连接线程?最好一个ip只能开启1个线程
ipfw add 00110 allow tcp from any to me setup limit src-addr 30

这条规则,重启后怎么自动消失了啊!
发表于 2009-11-22 18:27:35 | 显示全部楼层
/etc/ipfw.conf,防火墙配置文件,自己配置看看如何
发表于 2009-11-22 20:03:21 | 显示全部楼层
不过你必须注意add 00110 allow tcp from any to me setup limit src-addr 30是限制ip的,如果一个局域网内同时并发出去,计算在一起。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Archiver|URLOS ( 粤ICP备18087780号 )

GMT+8, 2025-5-11 07:44 , Processed in 0.028086 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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