(转)Linux下apache限速和限制同一IP连接数的实现
单位有一台DELL的服务器,4核双CPU,4G内存,1TB的存储空间,闲来无事,申请了域名http://www.zxzy123.cn,做了个网站,本以为用这样的配置做个下载站是绰绰有余了,没想到上线没几天,忽然发现有时打不开网页或很慢,惨了,受攻击了,心里想,查看记录,没发现什么问题,带宽也没用尽,ftp很快,关闭了下载链接,发现apache又很快了,问题应该就在这里,可能是用户开太多线程下载大软件了(我的好多软件都是GB级的),如何解决这个问题呢?总不能不让用户下载吧,说干就干,上网找了些资料,发现了两个很好的apache模块: mod_bw 和 mod_limitipconn ;分别是限速和限制IP连接数的模块。下面就是具体的操作步骤。
一、安装准备
用 whereis apxs 命令先确定你的系统是否有apxs文件及其路径,如果没有请安装(redhat linux自带的apache就可能没安装)
一、安装限速模块
1、下载:wget http://legacy.ivn.cl/files/source/mod_bw-0.92.tgz
如果以上地址失效,请自行到 http://ivn.cl/category/apache/查找
2,安装:
#tar -xvf mod_bw-0.92.tgz
#cd mod_bw
#/usr/local/apache2/bin/apxs -i -c -a mod_bw.c
3、OK,限速模块安装完毕,一会我们再回过头来配置它
二、安装限制IP连接数模块
1、下载:wget http://dominia.org/djao/limit/mod_limitipconn-0.23.tar.bz2
2、安装
#tar -jxvf mod_limitipconn-0.23.tar.bz2
#cd mod_limitipconn-0.23
#vi Makefile
修改:apxs = “/usr/local/apache2/bin/apxs” # 这里是自己apache的apxs路径,加载模块
或者
#/usr/local/apache2/bin/apxs -i -c -a mod_limitipconn.c 来加载模块
#make
#make install
3、OK,IP连接数限制模块安装完成
三、以下配置httpd.conf文件
1、确定是否有以下两句,如果有,如上面的安装是成功的,如果没有请手动添加试试(
不一定完成相同)
LoadModule limitipconn_module modules/mod_limitipconn.so
LoadModule bw_module modules/mod_bw.so
2、找到ExtendedStatus On,如果前面有#号的话要把#号去掉,如果没有这个选项需要自己手工添加
3、配置限速,添加以下语句(#后面的中文字全部不要输,这里是说明用的),配置限速,可根据控制的范围放在全局域或放在虚拟主机域
#这个 module 预设是关闭的,要将他开启才能够使用
BandwidthModule On
#这个 module 预设不会过滤每个需求,如果您开启他,他将处理过滤每个需求
ForceBandWidthModule On
#最大带宽,这个有两个参数。第一个是限制来源的位置,也就是该位置受限制。他可以是完整的 hostname、网域名称或 IP。可搭配遮罩使用,例如 192.168.0.0/24 or 192.168.0.0/255.255.255.0,all代表所有 。另一个参数是限制的速率,以 bytes 每秒为单位;假如为 0,则不受限制。
Bandwidth all 10000 #限速10K
#最小带宽,一般不限制,以下为不限制
MinBandwidth all -1
#大文件下载限制,顾名思义,这设定是专门用来限制大型档案的。第一个参数是指文件名,可以使用 * 代表全部。也可使用 .rar 等,
第二个参数单位是 kbyte,只要超过这个 Size 就被规范在这个设定的限速中,最后一个参数就是被限制的速率,单位是byte/s。
LargeFileLimit * 500 10240
4、配置限制IP连接数,添加以下语句(#后面的中文字全部不要输,这里是说明用的),配置限速,可根据控制的范围放在全局域或放在虚拟主机域
<IfModule mod_limitipconn>
<Location /> #需要控制的路径,相对于网站根目录
MaxConnPerIP 3 #限制的线程数
NoIPLimit image/* #对图片文件不做限制 如果仅限制某几种文件请用以下语句,本语句就不要
OnlyIPLimit audio/mpeg video/* application/x-rar #只对音频视频文件,自定义 minetype文件起作用
</Location>
</IfModule>
5、保存httpd.conf,重启httpd,一切OK。
(转)Linux下apache限速和限制同一IP连接数的实现的更多相关文章
- (转)Linux下Apache 限速模块安装笔记
参考文章:http://www.pcmag.com.cn/solution/net/story/200704/51003104.shtml 限线程:http://dominia.org/djao/li ...
- linux 下 apache相关;启动、停止、重启命令;配置文件位置等等
linux 下 apache启动.停止.重启命 基本的操作方法: 本文假设你的apahce安装目录为/usr/local/apache2,这些方法适合任何情况 apahce启动命令: 推荐/usr/l ...
- Linux下apache+phppgadmin+postgresql安装配置
Linux下apache+phppgadmin+postgresql安装配置 操作系统:CentOS 安装包:httpd(首选yum), php(包括php以及php-pgsql,php-mbstri ...
- 分享:linux下apache服务器的配置和管理
linux下apache服务器的配置和管理. 一.两个重要目录: Apache有两个重要的目录:1.配置目录/etc/httpd/conf:2.文档目录/var/www: 二.两种配置模式: Apac ...
- linux 下apache安装、启动和配置
linux 下 apache安装 1:系统安装,这里就不说了,网上有很多,也很简单.顺便说下,我用的是redhat 9: 2:在图形界面下下载apache 安装包,我下的是 httpd-2.2.9.t ...
- linux 下 apache启动、停止、重启命令
原文:linux 下 apache启动.停止.重启命令 基本的操作方法: 本文假设你的apahce安装目录为/usr/local/apache2,这些方法适合任何情况 apahce启动命令: 推荐/u ...
- [Linux]Linux下Apache服务器配置
Linux下Apache服务器配置 相关包: httpd-2.2.3-29.e15.i386.rpm //主程序包 httpd-devel-2.2.3-29.e15.i ...
- Linux下Apache服务器配置
Linux下Apache服务器配置 相关包: httpd-2.2.3-29.e15.i386.rpm //主程序包 httpd-devel-2.2.3-29.e15.i ...
- Linux下Apache服务部署静态网站------网站服务程序
文章链接(我的CSDN博客): Linux下Apache服务部署静态网站------网站服务程序
随机推荐
- 【转】prufer编码
既然有人提到了,就顺便学习一下吧,来源:http://greatkongxin.blog.163.com/blog/static/170097125201172483025666/ 一个含有n个点的完 ...
- css01入门小例子
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- bootsrtap (-)
1.text-muted:提示,使用浅灰色(#999).text-primary:主要,使用蓝色(#428bca).text-success:成功,使用浅绿色(#3c763d).text-info:通 ...
- asp.net+Sqlserver 通过存储过程读取数据
Sqlserver代码 创建存储过程如下: /*根据父id获取类别总数*/ IF EXISTS (SELECT name FROM sysobjects WHERE name = N'getsite ...
- 如何在github上传自己的项目
1.首先在github创建自己的账号. 2.下载github for windows 客户端 (备注:这里我的电脑是windows系统的) ,不要下载错了,网上下载的应该是这样的安装程序 3.安装gi ...
- String在JAVA里是固定长度的吗?为什么可用“+”连接
所谓长度固定不是你理解的意思而是说String类中存储的char[]是final的,不能修改,你对String的操作实际上是产生了一个新的String,对于某一个String来说,长度就是固定的了 S ...
- 一个CSS小测试
<!DOCTYPE html> <html> <head> <style type="text/css"> body{ margin ...
- oracle中存储过程详解
oracle中存储过程的使用 过程是指用于执行特定操作的PL/SQL块.如果客户应用经常需要执行特定操作,那么可以考虑基于这些操作建立过程.通过使用过程,不仅可以简化客户应用的开发和维护,而且可以提高 ...
- 【转】Qt之模型/视图
[本文转自]http://blog.sina.com.cn/s/blog_a6fb6cc90101hh20.html 作者: 一去丶二三里 关于Qt中MVC的介绍与使用,助手中有一节模型/视图编程 ...
- 如何启动Service,如何停用Service(转)
如何启用Service,如何停用Service Android中的服务和windows中的服务是类似的东西,服务一般没有用户操作界面,它运行于系统中不容易被用户发现,可以使用它开发如监控之类的程序.服 ...