線上估價,比價最容易
給你最便宜的價格,消費不吃虧
平價搬家公司優質裝潢設計裝潢團隊,空間規劃
平價奢華設計,免費設計諮詢

首頁  •  j2h 論壇 • 程式設計討論     • 

apache 限制下載流量與連線數

房東:小白
發表時間:2007-02-16


分成二個部份
一個是流量限制的部份
由於我們是用 FreeBSD
可以使用很方便的 ports 來安裝

cd /usr/ports/www/mod_bandwidth
make install clean

檢查一下你的 httpd.conf 裡有沒有增加了這樣的設定
LoadModule bandwidth_module libexec/apache/mod_bandwidth.so
AddModule mod_bandwidth.c
如果有的話就接著下去設定


BandWidthModule on
BandWidthDataDir "/home"



BandWidth all 512000


在這個範例裡頭
我設定的 BandWidthDataDir "/home"
所以我要在 /home 裡頭做這些設定
mkdir master
chmod 777 master
mkdir link
chmod 777 link
接著就可以做測試了
利用 flashget 去抓檔
會發現被鎖在 50 Bytes/sec
不過 flashget 有一個特性
就是一次可以發出多個連線
結果我們就發現
每一個連線都被限制在 50 Bytes
所以我們還需要限制每一個 IP 的連線數

cd /usr/ports/www/mod_limitipconn
make install clean

檢查一下 httpd.conf 裡有沒有這樣的設定
LoadModule limitipconn_module libexec/apache/mod_limitipconn.so
AddModule mod_limitipconn.c
如果有的話就再接下去設定



MaxConnPerIP 1



ExtendedStatus On

重新啟動 apache 之後
我們就會發現
flashget 連線數只有一個
而且被限制在 50 Bytes

要特別注意
我看到 mod_limitipconn 的說明是設定 Location
但是我設好了之後
完全不 work
後來改用 Directory 後才生效





  • 贊助網站       

    廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲
    完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心!
    廣利不動產-新板特區指名度最高、值得您信賴的好房仲
    您的托付,廣利用心為您服務

  • 1 樓住戶:小白
    發表時間:2007-02-16

      
         #所限制的目錄所在,此處表示主機的根目錄
          MaxConnPerIP 3 #所限制的每個IP併發連接數為3個
          NoIPLimit image/* #對圖片不做IP限制
        

         #所限制的目錄所在,此處表示主機的/mp3目錄
          MaxConnPerIP 1 #所限制的每個IP併發連接數為1個
          OnlyIPLimit audio/mpeg video #該限制只對視頻和音頻格式的文件
        

      


    2 樓住戶:小白
    發表時間:2007-02-16

    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_status模組已經載入,並且在mod_status下添加了ExtendedStatus On這一行。這時我們的mod_limitipconn模組就安裝完畢,下一步就是對某個目錄進行併發連接數的設置了。

    mod_limitipconn可以對全局和虛擬主機進行不同的限制,其語法結構都是


      
         #所限制的目錄所在,此處表示主機的根目錄
          MaxConnPerIP 3 #所限制的每個IP併發連接數為3個
          NoIPLimit image/* #對圖片不做IP限制
        

         #所限制的目錄所在,此處表示主機的/mp3目錄
          MaxConnPerIP 1 #所限制的每個IP併發連接數為1個
          OnlyIPLimit audio/mpeg video #該限制只對視頻和音頻格式的文件
        

      



    當對全局進行限制時,將這段代碼放在httpd.conf文件沒有VirtualHost的地方,若是對某個虛擬主機進行限制,請將其放在和之間,我們可以通過更改Location以及MaxConnPerIP方便的控制所限制的目錄和併發連接數。最後,只要重新啟動Apache服務,併發連接數的限制就可以生效。




     共 2 人回應  選擇頁數 【第1 頁】 

    姓名:
    佈告內容:
    其他選項: