數十年經驗,提供無接縫招牌、霓虹招牌 壓克力燈箱、LED等設計製作安裝,全省服務 | 輕鬆解決漏水噩夢!具防水專業認證 提供屋頂、外牆防水工程、壁癌防治等服務。 |
Linux下Apache並發連接數和帶寬控制 |
房東:優妹 發表時間:2007-02-24 |
Linux+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 版本,並且不支援檢測代理伺服器,所以我們一般都使用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放在了 LoadModule python_module modules/mod_python.so 之間,而將AddModule mod_limitipconn.c放在了 AddModule mod_python.c 之間,直接造成了mod_limitipconn模塊不能正常營運,所以請將這兩行分別移動到沒有 mod_limitipconn可以對全局和虛擬主機進行不同的限制,其語法架構都是 MaxConnPerIP 3 #所限制的每個IP並發連接數為3個 NoIPLimit image/* #對圖片不做IP限制 MaxConnPerIP 1 #所限制的每個IP並發連接數為1個 OnlyIPLimit audio/mpeg video #該限制只對視頻和音頻格式的檔案 當對全局進行限制時,將這段代碼放在httpd.conf檔案沒有VirtualHost的地方,若是對某個虛擬主機進行限制,請將其放在 最後,只要重新啟動Apache服務,並發連接數的限制就可以生效。 二、使用mod_bandwidth控制Apache的帶寬 Apache 1.3.7實際上帶有mod_bandwidth支援,只是沒有此模塊的so檔案,我們所做的就是下載mod_bandwidth的源檔案進行編譯,並對mod_bandwidth進行相應的設定。 在下載之前,請先確認自己的Apache配置檔案httpd.conf中是否含有 LoadModule bandwidth_module modules/mod_bandwidth.so 以及 AddModule mod_bandwidth.c 若是沒有,請加上 LoadModule bandwidth_module modules/mod_bandwidth.so AddModule mod_bandwidth.c 並且這兩行必須分別加在相應區域的最前面,使得這個模塊以最低的優先級營運。(不過1.3.7的Apache應該有,呵呵)。 確認後,請輸入wget ftp://ftp.cohprog.com/pub/apache/module/1.3.0/mod_bandwidth.c將源檔案下載到伺服器,然後請使用apxs對其進行編譯,編譯方法和mod_limitipconn的基本相同,如我輸入/usr/sbin/apxs -c mod_bandwidth.c -o /usr/lib/apache(Apache的模塊目錄),編譯程式會自動將編譯成功的mod_bandwidth.so檔案放到Apache的模塊目錄,您也可以自己確認一下,若是不正常,拷貝過去即可。 mod_bandwidth營運時需要一些特定的目錄,按照預設情況,請營運以下命令創建並更改目錄的權限︰ mkdir /tmp/apachebw mkdir /tmp/apachebw/link mkdir /tmp/apachebw/master chmod -R 777 /tmp/apachebw 然後再打開httpd.conf檔案,加上以下內容 BandWidthDataDir "/tmp/apachebw/" BandWidthModule on 這時,我們就能夠對所需要限制帶寬的目錄進行相應的設定,此處的目錄請使用伺服器的絕對路徑。如我們想限制伺服器/home/www/softicp/download/soft目錄的下載速度,也就是限制網址http://download.softicp.com/soft目錄下軟體的下載速度,則為httpd.conf檔案增加以下內容 BandWidth cbifamily.com 0 #來自cbifamily.com的下載不受速度限制 BandWidth 210.51.21 0 #來自210.51.21網段的下載不受速度限制 BandWidth all 327680 #來自其它網段的速度都限制為327680Byte,即30KB/s 設定完畢後,重新啟動Apache服務,即可生效。 mod_bandwidth還有許多其它有用的參數,如在 其它的參數請朋友們到其官方網站http://www.cohprog.com/v3/bandwidth/doc-en.html察看相關的文檔。 Apache的功能確實強大,很多功能都可以透過添加模塊來實現,在http://modules.apache.org/可以找到更多的模塊,我們也可以編寫自己的模塊來實現相應的功能。 |
|
廣利不動產-新板特區指名度最高、值得您信賴的好房仲 您的托付,廣利用心為您服務 廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲 完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心! |
姓名: | |||
佈告內容: | |||
其他選項: | |||
|