参考文章:http://www.pcmag.com.cn/solution/net/story/200704/51003104.shtml

限线程:http://dominia.org/djao/limitipconn2.html

限速:http://www.ivn.cl/#vhostlimit

# tar jxvf mod_limitipconn-0.23.tar.bz2

# cd mod_limitipconn-0.23

# /usr/local/apache/bin/apxs -c -i -a mod_limitipconn.c

Libraries have been installed in:
   /usr/local/apache/modules

....

[activating module `limitipconn' in /usr/local/apache/conf/httpd.conf]

参考http://dominia.org/djao/limitipconn2-README

# vi /usr/local/apache/conf/httpd.conf

<IfModule mod_limitipconn>
    <Location /t>
        MaxConnPerIP 1
    </Location>
</IfModule>

# cd mod_bw

# /usr/local/apache/bin/apxs -c -i -a mod_bw.c

Libraries have been installed in:
   /usr/local/apache/modules
参考:http://www.ivn.cl/files/txt/bw_mod-0.6.txt

# vi /usr/local/apache/conf/httpd.conf

<Directory />

BandWidthModule On

ForceBandWidthModule On #这个没加上之前试了几次发现不起作用
BandWidth     all 102400
MinBandWidth all 51200
MaxConnection all 50
</Directory>

出错:

httpd: Syntax error on line 55 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/mod_bw.so into server: /usr/local/apache/modules/mod_bw.so: undefined symbol: apr_atomic_cas

http://linuxp2p.net/blog/2007/03/apache2-mod_bw/

#vi mod_bw.c
修改一下mod_bw.c 就可以
#ifdef APR_MAJOR_VERSION   //添加这行
#if (APR_MAJOR_VERSION < 1)
    #define apr_atomic_inc32 apr_atomic_inc
    #define apr_atomic_dec32 apr_atomic_dec
    #define apr_atomic_add32 apr_atomic_add
    #define apr_atomic_cas32 apr_atomic_cas
    #define apr_atomic_set32 apr_atomic_set
#endif
#endif  //添加这行  重新编译就 ok

近几天单位某个分网站下载量过大,导致服务器负载很高,拖得其他网站访问也很慢。限速喽~
网上查了下,Apache限速一般都是通过mod_limitipconn和bw_mod两个模块实现。
☞ mod_limitipconn
限制每IP的连接数
☞ mod_bandwidth
限制目录总的带宽使用
话不多说,开始安装:
➩ 首先安装bw_mod模块,官方网站: http://www.ivn.cl/apache/
我是用DSO安装的apache,所以也使用apxs来安装插件,指令如下:
# tar zxvf mod_bw-0.8.tgz
# cd mod_bw
# $APACHE_HOME/bin/apxs -i -a -c mod_bw.c
设置Apache的conf文件:
BandWidthModule
OnForceBandWidthModule 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

➩ 接下来安装mod_limitipconn模块,官方网站:http://dominia.org/djao/limitipconn2.html
仍然使用DSO的方式来安装这个插件,命令如下:
# tar zxvf mod_limitipconn-0.22.tar.gz
# cd mod_limitipconn-0.22
修改Makefile文件,指定apxs和apachectl的位置
# make install
设置Apache的conf文件:
ExtendedStatus On
LoadModule limitipconn_module mod_limitipconn.so
# 可以将IP线程限制加到虚拟主机里面
<VirtualHost www.abc.cn>
ServerAdmin webmaster@abc.cn
DocumentRoot /data/webapp/abc
ServerName www.abc.cn
<IfModule mod_limitipconn.c>
<Location /bigfiles>//注意这里是虚拟主机根目录下的文件夹
MaxConnPerIP 5
# 在此目录中,除了image文件之外每IP最多保持5个连接
NoIPLimit image/*
MaxConnPerIP 1
</Location>
<Location /mp3>
MaxConnPerIP 1
# 在此目录中,对于audio音频文件每IP最多保持1个连接
OnlyIPLimit audio/mpeg video
</Location>
</IfModule>
</VirtualHost>

重启Apache,完成限速。

(转)Linux下Apache 限速模块安装笔记的更多相关文章

  1. Linux下apache+phppgadmin+postgresql安装配置

    Linux下apache+phppgadmin+postgresql安装配置 操作系统:CentOS 安装包:httpd(首选yum), php(包括php以及php-pgsql,php-mbstri ...

  2. (转)Linux下apache限速和限制同一IP连接数的实现

    单位有一台DELL的服务器,4核双CPU,4G内存,1TB的存储空间,闲来无事,申请了域名http://www.zxzy123.cn,做了个网站,本以为用这样的配置做个下载站是绰绰有余了,没想到上线没 ...

  3. Linux下apache activemq的安装与配置

    ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范 的 JMS Provider实现,尽管JMS规范出台已经是很 ...

  4. 最简单的Linux下apache+mysql+php安装

    转载:http://www.jb51.net/article/29843.htm ubuntu下需要先更新系统后 流程笔记: 1.打开终端,输入“sudo apt-get install apache ...

  5. Linux下Oracle 11G XE 安装笔记

    操作系统 [oracle@RAC02 ~]$ lsb_release -aLSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:cor ...

  6. linux下apache服务器的安装、启动、查看

    一.apache的启动 apahce启动命令:/你的安装目录/apachectl start apaceh启动 apache停止命令/你的安装目录/apachectl stop   停止 apache ...

  7. Linux下python pip手动安装笔记

    今天查问题, 从redis集群中模糊查询某个key, 用一些重复的命令, 链接不同的node, redis-cli 去查, 感觉不舒服. 考虑写一些shell或py来简化一下. 一查环境, 安装了py ...

  8. linux 下apache安装、启动和配置

    linux 下 apache安装 1:系统安装,这里就不说了,网上有很多,也很简单.顺便说下,我用的是redhat 9: 2:在图形界面下下载apache 安装包,我下的是 httpd-2.2.9.t ...

  9. linux下apache安装ssl步骤

    制作证书: 参考:linux下运用opensll制作ssl证书 生成三个证书 server.crt .server-ca.crt.server.key 安装openssl tar -xzvf open ...

随机推荐

  1. Python迭代--笔记

    <python3 程序开发指南> 迭代子.迭代操作 迭代子是一个对象,该对象可提供_next_()方法,该方法依次返回每个相继的数据项,并在没有数据项时产生StopIteration()异 ...

  2. ASP.NET 中的返回按钮的实现【转】

      返回上一页的这个东东在我们做项目的时候一般是用于填写完表单后确认的时候,有对原来输入的数据进行修改时用的,或者是因为网站为了方便浏览者而有心添加 的一个东东,一般这种功能的实现在ASP.net中都 ...

  3. access 2007 vba (亖)

    OpenReport方法执行 OpenReport 操作在 Visual Basic 中. 语法   表达式 .OpenReport(ReportName, View, FilterName, Whe ...

  4. Java反射 - 3(动态代理)

    动态代理是对包装模式的升级,可以动态的传入需要代理的对象实现代理 准备如下 1. 被代理类的接口 2.被代理类 3.处理器:InvocationHandler 4.代理调用:Proxy.newInst ...

  5. pydev新工程

    http://www.cnblogs.com/linjiqin/p/3595891.html 明天再编辑一下

  6. String分割类

    StringTokenizer类 用的时候要 import java.util.StringTokenizer; StringTokenizer b=new StringTokenizer( Stri ...

  7. 2013中国大数据技术大会——BDTC2013

    阿里飞天平台总架构师唐洪分享了飞天开放平台. 飞天平台特点:同时支持在线和离线应用:安全控制:分布式部署,监控和诊断:无单点故障,可用性99.9%:数据3副本,数据可靠性“10个9”. 阿里飞天平台总 ...

  8. vim学习心得(一)——Cygwin下vim配置

    关于Vi有很多传说.其中最为著名的是: “Vi是编辑器之神,Emacs是神的编辑器” Emacs没有用过,但是Vi在Linux经常使用,所以,掌握好vi非常重要!!! Vim(Vi Improved) ...

  9. redis数据结构HyperLogLog

    如果我们要实现记录网站每天访问的独立IP数量这样的一个功能 集合实现: 使用集合来储存每个访客的 IP ,通过集合性质(集合中的每个元素都各不相同)来得到多个独立 IP ,然后通过调用 SCARD 命 ...

  10. js识别终端类型

    <script type="text/javascript"> function browserRedirect() { var sUserAgent= navigat ...