使用mod_throttle模块限制web服务连接数和带宽
Posted sfqas
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用mod_throttle模块限制web服务连接数和带宽相关的知识,希望对你有一定的参考价值。
问题
使用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服务连接数和带宽的主要内容,如果未能解决你的问题,请参考以下文章
是啥限制了我的 ASP.NET 应用程序可以与 Web 服务建立的同时连接数?