EYblog - Powered by Eyblog - 并发
type: channel
link: https://www.jwwey.com/index.php/tag/并发/
items: 【技术解读】Apache限制IP并发数和流量控制

【技术解读】Apache限制IP并发数和流量控制
type: item
date: 2021-09-29T16:56:00+08:00
description: 使用mod_limitipconn模块限制IP并发连接数安装：wget http://dominia.org/djao/limit/mod_limitipconn-0.24.tar.bz2 tar jxvf mod_limitipconn-0.24.tar.bz2 cd mod_limitipconn-0.24 /usr/local/apache2/bin/apxs -c -i mod_limitipconn.c 其中 /usr/local/apache2/bin/apxs 这里必须是指定阿帕奇目录下的bin/apxs，这里需要看自己的服务器阿帕奇安装路径编辑httpd.confExtendedStatus On LoadModule limitipconn_module modules/mod_limitipconn.so #将路径修改为安装后的路径，保存时去掉以下代码的注释 #对应根目录 MaxConnPerIP 5 ＃最大并发数为5 NoIPLimit image/* ＃对图片不做限制 注意上面的配置复制进去之后，注释全部都要去掉，对应根目录是指自己的项目路径使用mod_bandwidth模块限制带宽mod_bandwidth可以对IP的并发数进行控制，也可以对下载流量进行控制，也可以对某个目录的流量进行控制。安装：wget http://bwmod.sourceforge.net/files/mod_bw-0.7.tgz tar zxvf mod_bw-0.7.tgz cd mod_bw /usr/local/apache2/bin/apxs -c -i mod_bw.c 其中 /usr/local/apache2/bin/apxs 这里必须是指定阿帕奇目录下的bin/apxs，这里需要看自己的服务器阿帕奇安装路径编辑httpd.confLoadModule bw_module modules/mod_bw.so 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 其它参数事例说明BandWidth localhost 0 #对localhost不限速 BandWidth 192.168.1.5 102400 #对192.168.1.5限速为100KB BandWidth “u:^Mozilla(.*)” 10240 #用mozilla时限速10KB BandWidth “u:wget” 102400 ＃如果用wget下载时限速10KB MinBandWidth all -1 ＃保证每个客户端最高速度可达10KB LargeFileLimit .jpg 100 10240 ＃jpg文件超过100KB，限速10KB ＃下面的510挺好，如果不设置，apache自己会报错，就根报404差不多，页面非常的丑 ErrorDocument 510 /exceed_speed.html BandWidthError 510 MaxConnection all 10 #所有ip最大连接数为10 MaxConnection 192.168.1.5 5 ＃192.168.1.5最大连接数为5 示例结果：上面功能主要用于限制，当项目存在多个php-fpm请求时需要做项目的限制处理