时间:2021-05-19
本文章来给各位同学总结一下APACHE中限制IP连接数与IP并发数和流量控制实现方法,如果只限制连接数据我们可以直接使用limit,如果要限制其它的需要使用其它第三方模块了
使用mod_limitipconn模块限制IP并发连接数
安装:
编辑httpd.conf
ExtendedStatus OnLoadModule limitipconn_module modules/mod_limitipconn.so <ifModule mod_limitipconn.c><location /> #对应根目录 MaxConnPerIP 5 #最大并发数为5 NoIPLimit image/* #对图片不做限制</location><location /test> #对根目录下的test目录做限制 MaxConnPerIP 2 #最大并发数为2</location></ifModule>如果想限制虚拟主机的ip并发连接数,可以修改extra/httpd-vhost.conf把 IfModule mod_limitipconn.c 这一段复制到Virtualhost中就可以了。
测试:
测试很简单,把最大连接数调小一点,随便一个浏览器访问页面,然后按着F5,让页面不断刷新,一下就可以弹出503错误
使用mod_bandwidth模块限制带宽
mod_bandwidth可以对IP的并发数进行控制,也可以对下载流量进行控制,也可以对某个目录的流量进行控制。
安装:
编辑httpd.conf配置文件:
LoadModule bw_module modules/mod_bw.so <virtualHost *:80> ServerName vhost1.cszhi.com DocumentRoot /var/www/vhost1 BandwidthModule On ForceBandWidthModule On Bandwidth all 1024000 MinBandwidth all 50000 #每个客户端最高速度可达50KB LargeFileLimit * 500 50000 MaxConnection all 6</virtualHost>其它参数事例说明,详细的见源码包里的mod_bw.txt:
BandWidth localhost 0 #对localhost不限速BandWidth 192.168.1.5 102400 #对192.168.1.5限速为100KBBandWidth “u:^Mozilla(.*)” 10240 #用mozilla时限速10KBBandWidth “u:wget” 102400 #如果用wget下载时限速10KBMinBandWidth all -1 #保证每个客户端最高速度可达10KBLargeFileLimit .jpg 100 10240 #jpg文件超过100KB,限速10KB#下面的510挺好,如果不设置,apache自己会报错,就根报404差不多,页面非常的丑ErrorDocument 510 /exceed_speed.htmlBandWidthError 510MaxConnection all 10 #所有ip最大连接数为10MaxConnection 192.168.1.5 5 #192.168.1.5最大连接数为5测试:
使用mod_bw.so模块前:
使用mod_bw.so模块后:
安装过程中可能出现的问题:
1、添加完mod_bw.so模块,重启apache时出现错误:
[root@vps httpd]# /etc/init.d/httpd restartStopping httpd: [FAILED]Starting httpd: httpd: Syntax error on line 203 of /etc/httpd/conf/httpd.conf: Cannot load /etc/httpd/modules/mod_bw.so into server: /etc/httpd/modules/mod_bw.so: undefined symbol: apr_atomic_cas [FAILED]修改一下mod_bw.c 就可以:
#ifdef APR_MAJOR_VERSION //添加这行#if (APR_MAJOR_VERSION < 1) #define apr_atomic_inc32 apr_atomic_inc #define apr_atomic_dec32 apr_atomic_dec #define apr_atomic_add32 apr_atomic_add #define apr_atomic_cas32 apr_atomic_cas #define apr_atomic_set32 apr_atomic_set#endif#endif //添加这行重新编译:
/usr/local/apache2/bin/apxs -c -i mod_bw.c
2、如果服务器没有安装apxs,可以参照以下方法安装:
apxs是一个为Apache HTTP服务器编译和安装扩展模块的工具,用于编译一个或多个源程序或目标代码文件为动态共享对象,使之可以用由mod_so提供的LoadModule指令在运行时加载到Apache服务器中。
输入命令查看是否有httpd-devel这个包,如果没有需要安装
rpm -qa|grep httpdyum -y install httpd-devel声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
背景日常开发中,难免遇到并发场景,而并发场景难免需要做流量控制,即需要对并发的进程或者线程的总量进行控制。今天简单总结两种常用的控制线程个数的方法。方法一:进程
mod_limitipconn,这个是Apache的一个非官方模块,根据同一个来源IP进行并发连接控制,Bw_mod,它可以根据来源IP进行带宽限制,它们都是a
在Nginx服务器上进行一些常规设置,来限制其并发数及会话空间等。nginx限制ip并发数,也是说限制同一个ip同时连接服务器的数量1,添加limit_zone
nginxnginx限制ip并发数,也是说限制同一个ip同时连接服务器的数量1.添加limit_zone这个变量只能在http使用vi/usr/local/ng
建行pos机设置wifi的方法是: 1、打开设置,打开WLNA设置项,点击无线和网络设置,即可具体设置允许连接数和流量控制等。 2、打开安全中心。点击授权管