Linux下Apache並發串連數和頻寬控制

來源:互聯網
上載者:User
 

   Apache的穩定性、性和效能以及低廉的價格正在贏得越來越多的市場份額,使用Linux Apache作網站伺服器的朋友也越來越多,而Apache作為一種http服務,相比FTP總是不容易控制,特別是當網站以http方式提供軟體/音樂下載時,若是每個使用者都開啟多個線程並沒有頻寬的限制,將很快達到http的最大串連數或者造成壅塞,使得網站的許多正常服務都無法運行。不過,Apache的使用者們早已開發出了mod_limitipconn和mod_bandwidth兩個模組,來控制http的並發串連數和使用者所能夠使用的頻寬,下面將以RedHat Linux 7.3 Apache 1.3.7來說明它們的使用方法。
  
  一、使用mod_limitipconn限制Apache的並發串連數
  
  mod_limitipconn可以控制每個IP地址同時串連伺服器某一個目錄的並發串連數,是一個非常有用的模組,其官方網頁是http://dominia.org/djao/limitipconn.html,最新版本為for Apache 1.3.7的0.04,並且還有支援Apache 2.x的模組下載,由於本人使用Apache 1.3.7版本,所以請使用2.x版本Apache的朋友到其官方網站察看具體的使用方法。
  
  mod_limitipconn for Apache 1.3x提供三種安裝方式,分別是tar包、rpm安裝檔案和rpm源檔案,由於rpm包只能用在 RedHat 7.x 版本,並且不支援檢測Proxy 伺服器,所以我們一般都使用tar包的安裝方式。
  
  以員方式登陸伺服器,然後在伺服器上運行 wget http://dominia.org/djao/limit/mod_limitipconn-0.04.tar.gz 將mod_limitipconn的tar包下載到伺服器,然後按照再運行tar zxvf mod_limitipconn-0.04.tar.gz將tar包解壓縮,會在目前的目錄下產生mod_limitipconn-0.04目錄,然後cd mod_limitipconn-0.04進入此目錄,下一步就是使用apxs將目錄中的mod_limitipconn.c編譯。這時,我們需要確定自己的Apache安裝在那個目錄,並且找到apxs命令放在哪裡。
  
  通過命令whereis apxs,我們可以確定apxs命令的路徑,如我的apxs命令所在為/usr/sbin/apxs,則輸入/usr/sbin/apxs -c -i -a mod_limitipconn.c對mod_limitipconn.c進行編譯,此命令會自動在你Apache的設定檔httpd.conf中加入需要的資訊,並且將產生的mod_limitipconn.so模組拷貝到Apache的模組目錄。不過為了確認此命令是否正常運作,請首先自己的Apache模組目錄(我的是/usr/lib/apache),看內部是否含有mod_limitipconn.so檔案,沒有的話請將mod_limitipconn-0.04目錄中產生的檔案拷貝到此處。
  
  剛才命令自動產生的httpd.conf可能有些錯誤,在我的系統中,它將LoadModule limitipconn_module modules/mod_limitipconn.so放在了
  
  <IfDefine HAVE_PYTHON>
  LoadModule python_module modules/mod_python.so
  </IfDefine>
  之間,而將AddModule mod_limitipconn.c放在了
  
  <IfDefine HAVE_PYTHON>
  AddModule mod_python.c
  </IfDefine>
  之間,直接造成了mod_limitipconn模組不能正常運行,所以請將這兩行分別移動到沒有<IfDefine></IfDefine>的相應行中,然後請確認mod_status模組已經載入,並且在mod_status下添加了ExtendedStatus On這一行。這時我們的mod_limitipconn模組就安裝完畢,下一步就是對某個目錄進行並發串連數的設定了。
  
  mod_limitipconn可以對全域和虛擬機器主機進行不同的限制,其文法結構都是
  
  <IfModule mod_limitipconn.c>
  <Location /> #所限制的目錄所在,此處表示主機的根目錄
  MaxConnPerIP 3 #所限制的每個IP並發串連數為3個
  NoIPLimit image/* #對圖片不做IP限制
  </Location>
  <Location /mp3> #所限制的目錄所在,此處表示主機的/mp3目錄
  MaxConnPerIP 1 #所限制的每個IP並發串連數為1個
  OnlyIPLimit audio/mpeg video #該限制只對視頻和音頻格式的檔案
  </Location>
  </IfModule>
  當對全域進行限制時,將這段代碼放在httpd.conf檔案沒有VirtualHost的地方,若是對某個虛擬機器主機進行限制,請將其放在<VirtualHost xxx.xxx.xxx.xxx>和</VirtualHost>之間,我們可以通過更改Location以及MaxConnPerIP方便的控制所限制的目錄和並發串連數。
  
  最後,只要重新啟動Apache服務,並發串連數的限制就可以生效。 
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.