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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[转] apache进程限制...

 关闭 [复制链接]
Crossday 发表于 2003-4-15 09:54:06 | 显示全部楼层 |阅读模式
我发现转了半天又转回来了 原来是iamok的大作

作者:iamok     发表时间:2003/01/05 04:08pm

首先感谢hunreal的技术支持

1.构建过程说明

进行ip链接限制利用了apache的module--->mod_limitipconn
具体网址:http://dominia.org/djao/limitipconn.html
apache的modyle查询网址:http://modules.apache.org
系统说明:redhat ad server2.1 apache1.3.27

2.构建过程

构建过程是基于apache启用dso(dynamic shared objects )模式.
也就是你在编译apache的时候加入了--enable-module=so这个参数
构建的时候你无需停止你的apache服务...这个就是dso的方便之处:)
为了便于理解
这里把apache安装的目录叫做/apache-root
apache的源码目录叫做/apache-src

1)
把下裁到的mod_limitipconn-0.04.tar.gz解压到一个目录
tar -zvxf mod_limitipconn-0.04.tar.gz
这样mod就被解压到它所在地目录了...

2)
利用apxs把mod_limitconn.c编译成so为后缀的模块,并由程序自动修改apache的conf和cp模块到/apache-root/libexec,并设置正确权限(全自动完成)

cd mod_limitipconn-0.04
/apache-root/bin/apxs -i -a -c mod_limitipconn.c


3)
利用phpinfo();函数查看apache当前的mod情况...(用vi编辑一个只有<? phpinfo(); ?>的php)

如果没有mod_status那么手动增加
增加方法如下:
为apache增加server-status的支持...
cd /apache-src/src/modules/standard
/apache-root/bin/apxs -i -a -c mod_status.c
注:一般都有mod_status了...:)所以上面步骤可选...

4)
修改apache的配置文件,配置文件在/apache-root/conf/httpd.conf

检查里面是否有下面的句子

LoadModule limitipconn_module libexec/mod_limitipconn.so
#LoadModule status_module      libexec/mod_status.so  //手动增加mod_模块要加这行
AddModule mod_limitipconn.c
#AddModule mod_status.c   //手动增加mod_模块要加这行


并且

ExtendedStatus On
段要为on的设置,默认是off

还要在httpd.conf的最后加入
##############
#new add conf#
##############
<IfModule mod_limitipconn.c>
   <Location />
               MaxConnPerIP 6
       # exempting images from the connection limit is often a good
       # idea if your web page has lots of inline images, since these
       # pages often generate a flurry of concurrent image requests
      NoIPLimit image*      //image文件不受限制...包括gif,jpg等...
   </Location>

#    <Location /mp3>
#       MaxConnPerIP 1
#       # In this case, all MIME types other than audio/mpeg and video*
#       # are exempt from the limit check
#       OnlyIPLimit audio/mpeg video
#    </Location>
</IfModule>
##################
#new add conf end#
##################


MaxConnPerIP 6说明限制每个ip为6个链接....

5)
确认conf是不是正确

/apache-root/bin/apachectl configtest
restart apache

/apache-root/bin/apachectl restart


6)
自己想个办法测试了...:)
更多信息查看官方网站的介绍..:)
 楼主| Crossday 发表于 2003-4-15 09:57:10 | 显示全部楼层

另一篇

摘要
  本文介绍通过mod_limitipconn模块来限制apache的并发连接数的详细方法。(2003-01-14 13:34:08)

--------------------------------------------------------------------------------
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就可以生效了


编译的装

  1. tar xzvf apache_1.3.27.tar.gz
  2. tar xzvf mod_limitipconn-0.04.tar.gz
  3. cd apache_1.3.27
  4. patch -p1 < ../mod_limitipconn-0.04/apachesrc.diff
  5. cp ../mod_limitipconn-0.04/mod_limitipconn.c src/modules/extra/
  6. ./configure --activate-module=src/modules/extra/mod_limitipconn.c --with-forward
  7. make
  8. make install
复制代码


另外一个防止DOS攻击的软件
http://www.nuclearelephant.com/projects/dosevasive/
回复

使用道具 举报

tonyvicky 发表于 2003-4-15 11:03:12 | 显示全部楼层
风过留枫的文章总是这么权威,哈哈.
回复

使用道具 举报

 楼主| Crossday 发表于 2003-9-12 19:21:49 | 显示全部楼层
Crossday 的补充和感想

长时间比较 发现这个模块在现有的类似软件中效果算最好的
但对个别用户有图片文件无法显示的问题 我的解决办法是

httpd.conf 中随便添加一种图形类型

AddType image/image .gif .jpg .png .bmp

mod_limitipconn的设置里

NoIPLimit image/image

重启apache即可 可彻底避免图形文件无法显示的问题
另外对需要保护的页面可有效限制(经测试)
回复

使用道具 举报

tonyvicky 发表于 2003-9-12 19:57:14 | 显示全部楼层
也就是说limitipconn也限制了其他文件的访问了.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 01:11 , Processed in 0.026557 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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