|
使用mod_limitipconn.c来限制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 (proxyclientdetectionfeaturenotenabled) http://dominia.org/djao/limit/mod_limitipconn-0.04-1.src.rpm 我用的是tar包下载的是mod_limitipconn-0.04.tar.gz,(该模块已经可以支持apache2)在服务器上执行#wgethttp://dominia.org/djao/limit/mod_limitipconn-0.04.tar.gz下载到本地 然后执行下面的命令编译安装.我的apache位于/usr/local/apache目录 解压缩: [root@nschenlf]#tarzxvfmod_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@nschenlf]#cdmod_limitipconn-0.04 [root@nsmod_limitipconn-0.04]#ls apachesrc.diffChangeLogMakefile mod_limitipconn.cREADME [root@nsmod_limitipconn-0.04] #/usr/local/apache/bin/apxs-c-i-amod_limitipconn.c gcc-DLINUX=22-I/usr/include/db1-fpic-DSHARED_MODULE-I /usr/local/apache/include-cmod_limitipconn.c gcc-shared-omod_limitipconn.somod_limitipconn.o [activatingmodule`limitipconnin/usr/local /apache/conf/httpd.conf] cpmod_limitipconn.so/usr/local/apache/libexec/mod_limitipconn.so chmod755/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加上以下几行: <IfModulemod_limitipconn.c> <Location/>#所有虚拟主机的/目录 MaxConnPerIP3#每IP只允许3个并发连接 NoIPLimitimage/*#对图片不做IP限制 </Location> <Location/mp3>#所有主机的/mp3目录 MaxConnPerIP1#每IP只允许一个连接请求 OnlyIPLimitaudio/mpegvideo#该限制只对视频和音频格式的文件 </Location> </IfModule> 2局部限制,你也可以在虚拟主机的配置文件里设置IP限制,方法是完全一样: <VirtualHostxx.xxx.xx.xx> ServerAdminchenlf@chinalinuxpub.com DocumentRoot/home/my ServerNamewww.my.com <IfModulemod_limitipconn.c> <Location/>#所有虚拟主机的/目录 MaxConnPerIP5#每IP只允许3个并发连接 NoIPLimitimage/*#对图片不做IP限制 </Location> <Location/mp3>#所有主机的/mp3目录 MaxConnPerIP2#每IP只允许一个连接请求 OnlyIPLimitaudio/mpegvideo#该限制只对视频和音频格式的文件 </Location> </IfModule> ErrorLog/home/my/logs/error_log CustomLog/home/my/logs/access_logcommon </VirtualHost> 3此外必须将apache的ExtendedStatus设置为ON.在httpd.conf找到 #ExtendedStatusOn 去掉前面的注释即可 好了,全部配置结束,重起apache就可以生效了 (完)
|