湖南教材网站准备加入一些FLASH视频的元素,目前还是以flv文件格式提供flash方式的视频流,如同目前比较流行的博客网站的视频播放形式,这种方式还是利用http方式下载,只不过可以依靠flash实现流下载,即边下载边播放。
为了提高http下载的效率和质量,节约利用带宽,今天用apache的一些限制功能来控制这些视频下载播放,主要是两个方面,一个是带宽限制,一个是连接数的限制,apache的版本是2.0.53。
带宽限制通过bw_mod模块来实现,官网地址: http://www.ivn.cl/apache/
安装和使用方式比较简单,附带文档也有说明。我是用DSO安装的apache,所以也使用apxs来安装插件,指令如下:
bash# apxs -i -a -c mod_bw.c
apache.conf一些基本调用方式:
ForceBandWidthModule On
BandWidth 211.67.64.0/255.255.255.0 100000 //211.67.64.0的用户带宽限制为100K
BandWidth all 10000 //其他用户带宽限制为10K
LargeFileLimit .avi 500 10000 //文件大小超过500K的avi文件限制为10K
// 定义错误码和错误页面
ErrorDocument 510 /errors/maxconexceeded.html
BandWidthError 510
http连接控制通过mod_limitipconn模块来实现,官方地址:http://dominia.org/djao/limitipconn2.html
我仍然使用DSO的方式来安装这个插件,命令如下:
bash# tar xzvf mod_limitipconn-0.22.tar.gz
bash# cd mod_limitipconn-0.22
bash# make install
注意,这里可能需要修改MakeFile文件,修改一下默认的apxs和apachectl的路径到当前位置;
mod_limitipconn的基本调用方式:
LoadModule limitipconn_module mod_limitipconn.so
<IfModule mod_limitipconn.c>
<Location /somewhere>
MaxConnPerIP 3
# 在此目录中,除了image文件之外每IP最多保持3个连接
NoIPLimit image/*
</Location>
<Location /mp3>
MaxConnPerIP 1
# 在此目录中,对于audio音频文件每IP最多保持1个连接
OnlyIPLimit audio/mpeg video
</Location>
</IfModule>
配置完成后,通过flash下载测试基本满足要求。