Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[文档] 在apache下限制每个虚拟主机的并发数!!!!

[复制链接]
cqfanli 发表于 2003-9-6 01:20:44 | 显示全部楼层 |阅读模式
在apache下限制每个虚拟主机的并发数!!!!   

--------------------------------------------------------------------------------

下载模块:

http://www.nowhere-land.org/prog ... st_limit-0.4.tar.gz

官方网址: http://www.nowhere-land.org/programs/mod_vhost_limit/

安装:

apxs -c mod_vhost_limit.c -o /path/to/libexec/mod_vhost_limit.so

在 httpd.conf 加入:

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. 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

希望对大家有用!!

[ Last edited by uplinux on 2003-12-11 at 03:27 PM ]
UP.Linux 发表于 2003-12-11 00:42:00 | 显示全部楼层
狂顶一下,这个大大的有用啊。

马上就要用到!
回复

使用道具 举报

paradis 发表于 2003-12-11 00:48:58 | 显示全部楼层

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

使用mod_limitipconn.c来限制apache的并发数
http://www.chinaunix.net 作者:南非蜘蛛  发表于:2003-01-18 13:40:47

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

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


  下载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 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就可以生效了
回复

使用道具 举报

smzml 发表于 2006-3-18 12:25:19 | 显示全部楼层
我是用win 下的apache2 ,这个 mod_limitipconn 模块怎么用呀?有没有for win 的专用模块呀?
回复

使用道具 举报

ftpgogo 发表于 2006-3-31 21:42:31 | 显示全部楼层
is that the mod_vhost_limit 's site downed?
i can't go in...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-12-27 16:33 , Processed in 0.025820 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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