本文章來給各位同學總結一下APACHE中限制IP連接數與IP并發數和流量控制實現方法,如果只限制連接數據我們可以直接使用limit,如果要限制其它的需要使用其它第三方模塊了
使用mod_limitipconn模塊限制IP并發連接數
安裝:
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 /> #對應根目錄 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的并發數進行控制,也可以對下載流量進行控制,也可以對某個目錄的流量進行控制。
安裝:
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 #每個客戶端最高速度可達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
新聞熱點
疑難解答