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.phpWebbench - Simple Web Benchmark 1.5Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://127.0.0.1/index.php100 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或者less127.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 10004NameVirtualHost *: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時限速10KB4,BandWidth “u:wget” 102400 #如果用wget下載時限速10KB
5,MinBandWidth all -1 #保證每個客戶端最高速度可達10KB6,LargeFileLimit .jpg 100 10240 #jpg文件超過100KB,限速10KB
7,#下面的510挺好,如果不設置,apache自己會報錯,就根報404差不多,頁面非常的丑ErrorDocument 510 /exceed_speed.htmlBandWidthError 510
8,MaxConnection all 10 #所有ip最大連接數為109,MaxConnection 192.168.1.5 5 #192.168.1.5最大連接數為5
新聞熱點
疑難解答