本文章來(lái)給各位同學(xué)總結(jié)一下APACHE中限制IP連接數(shù)與IP并發(fā)數(shù)和流量控制實(shí)現(xiàn)方法,如果只限制連接數(shù)據(jù)我們可以直接使用limit,如果要限制其它的需要使用其它第三方模塊了
使用mod_limitipconn模塊限制IP并發(fā)連接數(shù)
安裝:
wget http://dominia.org/djao/limit/mod_limitipconn-0.24.tar.bz2tar jxvf mod_limitipconn-0.24.tar.bz2cd mod_limitipconn-0.24/usr/local/apache2/bin/apxs -c -i mod_limitipconn.c
編輯httpd.conf
ExtendedStatus OnLoadModule limitipconn_module modules/mod_limitipconn.so <ifModule mod_limitipconn.c><location /> #對(duì)應(yīng)根目錄 MaxConnPerIP 5 #最大并發(fā)數(shù)為5 NoIPLimit image/* #對(duì)圖片不做限制</location><location /test> #對(duì)根目錄下的test目錄做限制 MaxConnPerIP 2 #最大并發(fā)數(shù)為2</location></ifModule>
如果想限制虛擬主機(jī)的ip并發(fā)連接數(shù),可以修改extra/httpd-vhost.conf把 IfModule mod_limitipconn.c 這一段復(fù)制到Virtualhost中就可以了。
測(cè)試:
測(cè)試很簡(jiǎn)單,把最大連接數(shù)調(diào)小一點(diǎn),隨便一個(gè)瀏覽器訪(fǎng)問(wèn)頁(yè)面,然后按著F5,讓頁(yè)面不斷刷新,一下就可以彈出503錯(cuò)誤
使用mod_bandwidth模塊限制帶寬
mod_bandwidth可以對(duì)IP的并發(fā)數(shù)進(jìn)行控制,也可以對(duì)下載流量進(jìn)行控制,也可以對(duì)某個(gè)目錄的流量進(jìn)行控制。
安裝:
wget http://bwmod.sourceforge.net/files/mod_bw-0.7.tgztar zxvf mod_bw-0.7.tgzcd mod_bw/usr/local/apache2/bin/apxs -c -i mod_bw.c
編輯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 #每個(gè)客戶(hù)端最高速度可達(dá)50KB LargeFileLimit * 500 50000 MaxConnection all 6</virtualHost>
其它參數(shù)事例說(shuō)明,詳細(xì)的見(jiàn)源碼包里的mod_bw.txt:
BandWidth localhost 0 #對(duì)localhost不限速BandWidth 192.168.1.5 102400 #對(duì)192.168.1.5限速為100KBBandWidth “u:^Mozilla(.*)” 10240 #用mozilla時(shí)限速10KBBandWidth “u:wget” 102400 #如果用wget下載時(shí)限速10KBMinBandWidth all -1 #保證每個(gè)客戶(hù)端最高速度可達(dá)10KBLargeFileLimit .jpg 100 10240 #jpg文件超過(guò)100KB,限速10KB#下面的510挺好,如果不設(shè)置,apache自己會(huì)報(bào)錯(cuò),就根報(bào)404差不多,頁(yè)面非常的丑ErrorDocument 510 /exceed_speed.htmlBandWidthError 510MaxConnection all 10 #所有ip最大連接數(shù)為10MaxConnection 192.168.1.5 5 #192.168.1.5最大連接數(shù)為5
測(cè)試:
使用mod_bw.so模塊前:
使用mod_bw.so模塊后:
安裝過(guò)程中可能出現(xiàn)的問(wèn)題:
1、添加完mod_bw.so模塊,重啟apache時(shí)出現(xiàn)錯(cuò)誤:
[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]
新聞熱點(diǎn)
疑難解答
圖片精選