国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Apache > 正文

APACHE中限制IP連接數與IP并發數和流量控制

2024-08-27 18:22:26
字體:
來源:轉載
供稿:網友

本文章來給各位同學總結一下APACHE中限制IP連接數與IP并發數和流量控制實現方法,如果只限制連接數據我們可以直接使用limit,如果要限制其它的需要使用其它第三方模塊了。

利用Limit模塊限制IP連接數

系統版本:centos6.3,APACHE版本:apache2.42(編譯安裝)

1.配置Limit模塊

#wget http://dominia.org/djao/limit/mod_limitipconn-0.24.tar.bz2

安裝:

  1. #tar jxvf mod_limitipconn-0.24.tar.bz2 
  2. #cd mod_limitipconn-0.24 
  3. #vi Makefile 

找到APXS這行,改成

  1. APXS=/usr/local/apache2/bin/apxs 
  2. #make && make install 

全局變量范例:

  1. < IfModule mod_limitipconn.c > 
  2. < Location / >    # 所有虛擬主機的/目錄 
  3. MaxConnPerIP 3      # 每IP只允許3個并發連接 
  4. NoIPLimit image/*   # 對圖片不做IP限制 
  5. < /Location > 
  6. < Location /mp3 >   # 所有主機的/mp3目錄 
  7. MaxConnPerIP 1          # 每IP只允許一個連接請求 
  8. OnlyIPLimit audio/mpeg video     # 該限制只對視頻和音頻格式的文件 
  9. < /Location > 
  10. < /IfModule > 
  11. # vi /usr/local/apache2/conf/httpd.conf 
  12. -------------------- 
  13.  
  14. ExtendedStatus On   
  15. LoadModule limitipconn_module modules/mod_limitipconn.so 
  16. <IfModule mod_limitipconn.c>  
  17. <Location /> 
  18. MaxConnPerIP 6 
  19. NoIPLimit image/*  
  20. </Location> 
  21. </IfModule>  
  22. ------------------- 

2、配置webbench對網站進行壓力測試:

  1. #wget http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gz 
  2. #tar zxvf webbench-1.5.tar.gz 
  3. #cd webbench-1.5 
  4. #make && make install 

3、使用:

webbench -c 500 -t 30 http://127.0.0.1/

參數說明:-c表示并發數,-t表示時間(秒)

4、測試結果示例:

  1. Webbench - Simple Web Benchmark 1.5 
  2. Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software. 
  3. Benchmarking: GET http://127.0.0.1/ 
  4. 500 clients, running 30 sec. 
  5. Speed=3230 pages/min, 11614212 bytes/sec. 
  6. Requests: 1615 susceed, 0 failed. 

Apache限制一個IP的連接數

Apache最大的優點在于它是個模塊化的程序,缺乏什么樣的功能就可以單獨開發相應的功能模塊,然后加到Apache上就可以了,項目中一個客戶的平臺上資源較多,很多人都用多線程下載工具下載,導致服務器負載很大,于是便想到了限制IP的連接數,如果Apache是1.x版本的,那么從http://dominia.org/djao/limitipconn.html 這里下載對應的Linux版本的(windows的沒有),如果是2.x版本的,那么從http://dominia.org/djao/limitipconn2.html下載Linux的或者Windows的,如果用在Linux上,那么安裝方法上面寫的很清楚,如果是windows的,把下載的release目錄下的mod_limitipconn.dll放到Apache的安裝目錄的modules目錄下;

然后修改Apache的配置文件httpd.conf,這里不管Linux還是Windows都是一樣的,如果是2.0首先找到 httpd.conf 中的 LoadModule status_module modules/mod_status.so,把這句話前面的#去掉,然后加入如下內容:

  1. ExtendedStatus On 
  2. LoadModule limitipconn_module modulesmod_limitipconn.dll 
  3. <IfModule mod_limitipconn.c> 
  4.  <Location /resource> 
  5.  MaxConnPerIP 3 
  6.  # exempting images from the connection limit is often a good 
  7.  # idea if your web page has lots of inline images, since these 
  8.  # pages often generate a flurry of concurrent image requests 
  9.  NoIPLimit image/* 
  10.  </Location> 
  11.  </IfModule> 

里面/resource是制定限定IP的目錄,然后MaxConnPerIP是限定每個IP的并發連接數,NoIPLimit image/* 是排除resource下不限定的目錄。

Apache限制IP并發數和流量控制

使用mod_limitipconn模塊限制IP并發連接數,安裝:

  1. wget http://dominia.org/djao/limit/mod_limitipconn-0.24.tar.bz2 
  2. tar jxvf mod_limitipconn-0.24.tar.bz2 
  3. cd mod_limitipconn-0.24 
  4. /usr/local/apache2/bin/apxs -c -i mod_limitipconn.c 

編輯httpd.conf

  1. ExtendedStatus On 
  2. LoadModule limitipconn_module modules/mod_limitipconn.so 
  3. <ifModule mod_limitipconn.c> 
  4. <location />       #對應根目錄 
  5.       MaxConnPerIP 5          #最大并發數為5 
  6.       NoIPLimit image/*        #對圖片不做限制 
  7. </location> 
  8. <location /test>              #對根目錄下的test目錄做限制 
  9.      MaxConnPerIP 2         #最大并發數為2 
  10. </location> 
  11. </ifModule> 

如果想限制虛擬主機的ip并發連接數,可以修改extra/httpd-vhost.conf把 IfModule mod_limitipconn.c 這一段復制到Virtualhost中就可以了。

測試:測試很簡單,把最大連接數調小一點,隨便一個瀏覽器訪問頁面,然后按著F5,讓頁面不斷刷新,一下就可以彈出503錯誤。

使用mod_bandwidth模塊限制帶寬

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

  1. wget http://bwmod.sourceforge.net/files/mod_bw-0.7.tgz 
  2. tar zxvf mod_bw-0.7.tgz 
  3. cd mod_bw 
  4. /usr/local/apache2/bin/apxs -c -i mod_bw.c 

編輯httpd.conf配置文件:

  1. LoadModule bw_module modules/mod_bw.so 
  2. <virtualHost *:80> 
  3.         ServerName vhost1.cszhi.com 
  4.         DocumentRoot    /var/www/vhost1 
  5.         BandwidthModule On 
  6.         ForceBandWidthModule On 
  7.         Bandwidth all 1024000 
  8.         MinBandwidth all 50000      #每個客戶端最高速度可達50KB 
  9.         LargeFileLimit * 500 50000 
  10.         MaxConnection all 6 
  11. </virtualHost>  

其它參數事例說明,詳細的見源碼包里的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差不多,頁面非常的丑 
  8. ErrorDocument 510 /exceed_speed.html 
  9. BandWidthError 510 
  10. MaxConnection all 10        #所有ip最大連接數為10 
  11. MaxConnection 192.168.1.5 5      

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 峨边| 通辽市| 苍溪县| 巫山县| 华坪县| 巧家县| 海原县| 红原县| 军事| 公主岭市| 东兰县| 沙雅县| 洛南县| 宣威市| 平顶山市| 四会市| 白山市| 灌阳县| 永福县| 兴国县| 青神县| 乐东| 资溪县| 吴旗县| 平和县| 金川县| 六枝特区| 宁安市| 南召县| 宾川县| 钟山县| 东阿县| 台州市| 太仆寺旗| 封丘县| 辽阳县| 清丰县| 南溪县| 会泽县| 荥经县| 浏阳市|