澳门新葡萄京官网首页在apache下限制每个虚拟主机的并发数!!!!

来自论坛:下载模块: … st_limit-0.4.tar.gz 官方网址: _vhost_limit/
安装: apxs -c mod_vhost_limit.c -o
/path/to/libexec/mod_vhost_limit.so 在 加入: LoadModule
vhost_limit_module libexec/mod_vhost_limit.so AddModule
mod_vhost_limit.c 配置: MaxClients 150 ExtendedStatus On
NameVirtualHost * VirtualHost * ServerName server1 DocumentRoot
/some/where/1 MaxVhostClients 100 /VirtualHost VirtualHost * ServerName
server2 DocumentRoot /some/where/2 MaxVhostClients 30 /VirtualHost
VirtualHost * ServerName server3 DocumentRoot /some/where/3
/VirtualHost 其中: server1 被限制为 100 个并发线程数。 server2 被限制为
30 个并发线程数。 server3 没有被限制。 注:需 mod_status 的
ExtendedStatus On 支持!! 如超出限制的并发数在客户端就会出现503错误:
Service Temporarily Unavailable The server is temporarily unable to
service your request due to maintenance downtime or capacity problems.

===========================================================

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


By 风过留枫, 出处:Linux技术中坚站 冷风

  下载mod_limitipconn.c

  
  
    (proxy client detection feature not enabled)  
  

    
  我用的是tar包下载的是mod_limitipconn-0.04.tar.gz,(该模块已经可以支持apache2)在服务器上执行#
wget
下载到本地

  然后执行下面的命令编译安装.我的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 chenlf@chinalinuxpub.com
    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就可以生效了

Please try again later.

Apache/1.3.27 Server at server1 Port 80 在 error_log
中将会有类似以下的错误提示: [Mon Jun 23 15:22:24 2003] [error]
client access to server1 deferred, MaxVhostClients 100 exceeded
希望对大家有用!!

发表评论

电子邮件地址不会被公开。 必填项已用*标注