码迷,mamicode.com
首页 > Web开发 > 详细

使用mod_throttle模块限制web服务连接数和带宽

时间:2020-01-12 22:05:11      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:http   handler   注意   存在   结果   有一个   stat   计算   启用   

问题
使用mod_throttle模块限制web服务连接数和带宽

解决方案
Prim@Hosting系统使用mod_throttle模块限制apache的连接数和带宽。

■■■■启用连接数和带宽限制的方法■■■■

在安装Prima系统的时候,安装脚本会提示是否启用连接数限制和带宽限制。安装后如果需要修改,则编辑如下配置文件:

/usr/prima/etc/httpd/modules.conf

上述文件中如果有如下一行:

MOD_THROTTLE=1

则表示使用mod_throttle模块限制连接数和带宽。如果这一行前边有#将其注释掉,则是没有启用限制功能。

修改并保存这个文件后,要重新启动服务 /etc/init.d/httpd restart 配置方可生效。

■■■■功能说明及注意事项■■■■

1) 连接数和带宽的统计方法,是通过计算一段时间内访问量并除以这段时间的长度得到的。例如设置某站点连接数50,则系统这个站点允许1分钟内有3000次连接。也就是说,连接数和带宽的限制都是某一时间段内的平均值,不是实时计算的结果,所以可能存在一定的偏差。

2) 连接数限制和带宽限制同一个站点只能有一个限制生效。

如果要限制连接数,请将带宽限制的文本框位置填写为-1 ,即不限制。
如果要限制带宽,请将连接数的文本框位置填写为-1 ,即不限制。

如果同时填写连接数限制和带宽限制,则只有连接数限制生效,带宽限制不生效。

3) 当对一个站点打开带宽限制功能后,由于浏览器缓存等众多原因,启用此功能前下载的文件可能会不受带宽限制的影响。

4) 当超带宽和流量后,系统有两种处理方式:延迟访问或者显示“服务不可用”。

延迟访问的方式是在超过带宽和流量限制后,系统让访问变得很慢,延迟一会才返回访问结果。

显示“服务不可用”则是当超过带宽和流量限制后,系统直接输出“Service Temporarily Unavailable”,并中止访问。

Prim@Hosting For Linux 默认是“延迟访问”的方式。

5) 切换延迟访问与显示“服务不可用”两种方式。

编辑apache配置文件 /usr/prima/apache_ssl/conf/httpd.conf ,找到标记有<IfModule mod_throttle.c>的如下一个配置段:

<IfModule mod_throttle.c>
...
...
ThrottleMaxDelay 0
...
</IfModule>

其中ThrottleMaxDelay 0 一行表示超过带宽和流量限制后,采用延迟访问的方法。如果把这一行删除或者用#注释掉,则是采用显示“服务不可用”的方法。

修改并保存这个文件后,要重新启动服务 /etc/init.d/httpd restart 配置方可生效。

6) 自定义“服务不可用”页面。

当超过带宽和流量限制后,系统会输出“Service Temporarily Unavailable”,即所谓的显示“服务不可用”。

这个报错页面允许自行定义。修改 /www/icons/busy.html 即可实现。

然后编辑apache配置文件 /usr/prima/apache_ssl/conf/httpd.conf ,找到标记有<IfModule mod_throttle.c>的如下一个配置段:

<IfModule mod_throttle.c>
...
...
ErrorDocument 503 /icons/busy.html
...
</IfModule>

在其中添加 ErrorDocument 503 /icons/busy.html 一行,则表示用自定义的/www/icons/busy.html页面,替代“Service Temporarily Unavailable”的显示。

修改并保存这个文件后,要重新启动服务 /etc/init.d/httpd restart 配置方可生效。

7) 查看各站点连接数和带宽限制的方法

编辑apache配置文件 /usr/prima/apache_ssl/conf/httpd.conf ,在标记有<IfModule mod_throttle.c>的一个配置段中,找到如下三行:

#<Location /throttle-status>
# SetHandler throttle-status
#</Location>

将这三行前边的注释#去掉,如下:

<IfModule mod_throttle.c>
...
...
<Location /throttle-status>
SetHandler throttle-status
</Location>
...
</IfModule>

修改并保存这个文件后,要重新启动服务 /etc/init.d/httpd restart 配置方可生效。

然后即可通过浏览器访问如下地址:

http://服务器IP/throttle-status

实时监控带宽和流量限制。

使用mod_throttle模块限制web服务连接数和带宽

标签:http   handler   注意   存在   结果   有一个   stat   计算   启用   

原文地址:https://www.cnblogs.com/sfqas/p/12181821.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!