当前位置:Linux教程 - Apache - apache - 使用mod_limitipconn.c来限制apache的并发数

apache - 使用mod_limitipconn.c来限制apache的并发数

使用mod_limitipconn.c来限制apache的并发数
2004-04-23 15:18 pm
来自:Linux文档
现载:Www.8s8s.coM
地址:无名

  本文介绍通过mod_limitipconn模块来限制apache的并发连接数的详细方法。

  下载mod_limitipconn.c
  http://dominia.org/djao/limit/mod_limitipconn-0.04.tar.gz
  http://dominia.org/djao/limit/mod_limitipconn-0.04-1.i386.rpm
  (proxy client detection feature not enabled)
  http://dominia.org/djao/limit/mod_limitipconn-0.04-1.src.rpm
  我用的是tar包下载的是mod_limitipconn-0.04.tar.gz,(该模块已经可以支持apache2)
在服务器上执行# wget http://dominia.org/djao/limit/mod_limitipconn-0.04.tar.gz 下载到本地
  然后执行下面的命令编译安装.我的apache位于/usr/local/apache目录
  解压缩:
  [root@ns chenlf]# tar zxvf mod_limitipconn-0.04.tar.gz
    mod_limitipconn-0.04/
    mod_limitipconn-0.04/Makefile
    mod_limitipconn-0.04/README
    mod_limitipconn-0.04/apachesrc.diff
    mod_limitipconn-0.04/mod_limitipconn.c
    mod_limitipconn-0.04/ChangeLog
  编译安装:
  [root@ns chenlf]# cd mod_limitipconn-0.04
  [root@ns mod_limitipconn-0.04]# ls
    apachesrc.diff   ChangeLog   Makefile
    mod_limitipconn.c README
  [root@ns mod_limitipconn-0.04]
    # /usr/local/apache/bin/apxs -c -i -a mod_limitipconn.c
    gcc -DLINUX=22 -I/usr/include/db1 -fpic -DSHARED_MODULE -I
      /usr/local/apache/include -c mod_limitipconn.c
    gcc -shared -o mod_limitipconn.so mod_limitipconn.o
      [activating module `limitipconn' in /usr/local
      /apache/conf/httpd.conf]
    cp mod_limitipconn.so /usr/local/apache/libexec/mod_limitipconn.so
    chmod 755 /usr/local/apache/libexec/mod_limitipconn.so
    cp /usr/local/apache/conf/httpd.conf
      /usr/local/apache/conf/httpd.conf.bak
    cp /usr/local/apache/conf/httpd.conf.new
      /usr/local/apache/conf/httpd.conf
    rm /usr/local/apache/conf/httpd.conf.new

  修改配置文件:

  1全局控制:

  在httpd.conf加上以下几行:
  < IfModule mod_limitipconn.c >
   < Location / > # 所有虚拟主机的/目录
  MaxConnPerIP 3 # 每IP只允许3个并发连接
   NoIPLimit image/* # 对图片不做IP限制
< /Location >

  < Location /mp3 > # 所有主机的/mp3目录
    MaxConnPerIP 1 # 每IP只允许一个连接请求
    OnlyIPLimit audio/mpeg video # 该限制只对视频和音频格式的文件
< /Location >
< /IfModule >

  2 局部限制,你也可以在虚拟主机的配置文件里设置IP限制,方法是完全一样:
  < VirtualHost xx.xxx.xx.xx >
    ServerAdmin [email protected]
    DocumentRoot /home/my
    ServerName www.my.com
  < IfModule mod_limitipconn.c >
   < Location / > # 所有虚拟主机的/目录
      MaxConnPerIP 5 # 每IP只允许3个并发连接
  NoIPLimit image/* # 对图片不做IP限制
   < /Location >
  < Location /mp3 > # 所有主机的/mp3目录
      MaxConnPerIP 2 # 每IP只允许一个连接请求
      OnlyIPLimit audio/mpeg video # 该限制只对视频和音频格式的文件
  < /Location >
  < /IfModule >
  ErrorLog /home/my/logs/error_log
  CustomLog /home/my/logs/access_log common
< /VirtualHost >

  3 此外必须将apache的ExtendedStatus设置为ON.在httpd.conf找到
  # ExtendedStatus On
  去掉前面的注释即可
  好了,全部配置结束,重起apache就可以生效了