萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> nginx與apache限制ip連接數和帶寬方法

nginx與apache限制ip連接數和帶寬方法

 1,配置nginx.conf

代碼如下
http{
.............
limit_zone   one  $binary_remote_addr  10m;  //我記得默認配置就有,只不過是注釋掉了,如果沒有加一下
..............
 server{
 .................
 location {
 .........
 limit_conn one 20;          //連接數限制
 limit_rate 500k;            //帶寬限制
 ........
 }
 .................
 }
.............
}

[root@localhost nginx]# /etc/init.d/nginx reload //重新加載
 

2,測試限制ip連接數

代碼如下
[root@localhost nginx]#  webbench -c 100 -t 2 http://127.0.0.1/index.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://127.0.0.1/index.php
100 clients, running 2 sec.

Speed=429959 pages/min, 2758544 bytes/sec.
Requests: 14332 susceed, 0 failed.

[root@localhost nginx]# cat /var/log/nginx/access.log|grep 503 |more   //這樣的數據有很多,最好加個more或者less
127.0.0.1 - - [25/Apr/2012:17:52:21 +0800] "GET /index.php HTTP/1.0" 503 213 "-" "WebBench 1.5" -
127.0.0.1 - - [25/Apr/2012:17:52:21 +0800] "GET /index.php HTTP/1.0" 503 213 "-" "WebBench 1.5" -
127.0.0.1 - - [25/Apr/2012:17:52:21 +0800] "GET /index.php HTTP/1.0" 503 213 "-" "WebBench 1.5" -
127.0.0.1 - - [25/Apr/2012:17:52:21 +0800] "GET /index.php HTTP/1.0" 503 213 "-" "WebBench 1.5" -
127.0.0.1 - - [25/Apr/2012:17:52:21 +0800] "GET /index.php HTTP/1.0" 503 213 "-" "WebBench 1.5" -
127.0.0.1 - - [25/Apr/2012:17:52:21 +0800] "GET /index.php HTTP/1.0" 503 213 "-" "WebBench 1.5" -
127.0.0.1 - - [25/Apr/2012:17:52:21 +0800] "GET /index.php HTTP/1.0" 503 213 "-" "WebBench 1.5" -
127.0.0.1 - - [25/Apr/2012:17:52:21 +0800] "GET /index.php HTTP/1.0" 503 213 "-" "WebBench 1.5" -
 

..............................................................................................

通過以上測試,可以得出限制ip連接數是沒有問題的,但是限制帶寬看不出來,說實話這個不好測試,所以就沒測試了


利用apache限制IP並發數和下載流量控制


安裝mod_limitipconn限制IP連接數

1,下載地址:http://dominia.org/djao/limitipconn2.html

2,安裝:[root@BlackGhost mod_limitipconn-0.22]# /usr/local/apache2/bin/apxs -c -i mod_limitipconn.c

3,配置如下vi httpd.conf

代碼如下
ExtendedStatus On  
LoadModule limitipconn_module modules/mod_limitipconn.so  
 
<IfModule mod_limitipconn.c>  
   <Location />                                              #對應根目錄  
         MaxConnPerIP 6                                  #最大並發數  
         NoIPLimit image/*                              #對圖片不做限制  
    </Location>  
    <Location /download>                             #對根目錄下面的download  
         MaxConnPerIP 1                                    #最大並發數為1  
    </Location>  
</IfModule>
 

說明:解壓mod_limitipconn-0.22.tar.gz後,文件裡面有一個README裡面有配置的拿出來,根據自己的需要改一改就行了,如果真的不會,可以上網上查,像apache用的人這麼多,我想你的問題別人也遇到過,一查肯定能查到。如果你想放到虛擬主機進行最大並發數控制,可以修改extra/httpd-vhost.conf把<IfModule mod_limitipconn.c>這個東西copy到<Virtualhost>中就可以了

三,安裝mod_bandwidth

mod_bandwidth可以對IP的並發數進行控制,也可以對下載流量進行控制,也可以對某個目錄的流量進行控制。

1,下載地址:http://bwmod.sourceforge.net/

2,安裝:[root@BlackGhost mod_bw]# /usr/local/apache2/bin/apxs -c -i mod_bw.c

3,配置如下vi httpd.conf 加上LoadModule bw_module modules/mod_bw.so
然後打開vi httpd-vhosts.conf

代碼如下
listen 10004
NameVirtualHost *:10004
<VirtualHost *:10004>
 DocumentRoot "/home/zhangy/www/test"
 ServerName *:10004
 BandwidthModule On
 ForceBandWidthModule On
 Bandwidth all 1024000
 MinBandwidth all 50000
 LargeFileLimit * 500 50000
 MaxConnection all 6
 ErrorLog "/home/zhangy/apache/www.test.com-error.log"
 CustomLog "/home/zhangy/apache/www.test.com-error.log" common
</VirtualHost>

解壓bandwidth的壓縮文件後,裡面有一個mod_bw.txt有詳細的說明和實例,下面是部分參數說明:

1,BandWidth localhost 0                                      #對localhost不限速
2,BandWidth 192.168.1.5 102400                       #對192.168.1.5限速為100KB

3,BandWidth “u:^Mozilla(.*)” 10240              #用mozilla時限速10KB
4,BandWidth “u:wget” 102400                      #如果用wget下載時限速10KB

5,MinBandWidth all -1                                      #保證每個客戶端最高速度可達10KB
6,LargeFileLimit .jpg 100 10240                      #jpg文件超過100KB,限速10KB

7,#下面的510挺好,如果不設置,apache自己會報錯,就根報404差不多,頁面非常的丑
ErrorDocument 510 /exceed_speed.html
BandWidthError 510

8,MaxConnection all 10                                       #所有ip最大連接數為10
9,MaxConnection 192.168.1.5 5         &nb

copyright © 萬盛學電腦網 all rights reserved