提供客製化系統櫃、系統家具
專業師傅可到府為您丈量,現場亦有精美系統家具任您挑選
信義拆除提供專業迅速確實的通水管、通馬桶技術
立刻為您解決所有阻塞問題,馬桶疏通一次搞定

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

apache防止 FlashGet/NetAnt 大量抓檔

房東:皮卡丘
發表時間:2007-02-17


如果你使用 apache 架設比較大的站台,通常都會遇到兇暴的使用者:用
FlashGet/NetAnt 或是其他類似軟體對站台大量抓檔。

我曾經在某些 IIS website 上面看過某個功能:只讓你有兩個連線可以抓檔
案,其他的會 queue 住。

我不清楚是不是 IIS 的功能,或是 firewall 的功能,但是我蠻欣賞這項功
能的,所以我開始在 apache 上尋找類似的 module。

在 http://dominia.org/djao/limitipconn.html 提到的 mod_limitipconn
剛好就是我要的功能,所以我把他做成 ports (感謝 ijliao commit),目前
我已經在某台機器上跑起來,效果看起來還不錯。

* 要求

apache13 系列 (apache13、apache13-modssl、...)。

limitipconn 0.04 版 *不支援* apache2,但作者已經在 limitipconn 0.22
版支援 apache2,不過我這邊測不出來。

* 安裝

請先將 ports 更新。如果您不知道如何更新 ports,請參考我寫的另外一篇
文章:

http://ccca.nctu.edu.tw/~gslin/Documents/FreeBSD/use-cvsup.txt

更新完 ports 後,請打入下面的指令:

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

* 設定

安裝完以後,請到 /usr/local/etc/apache/httpd.conf 內將下面三行最前
面的 '#' 拿掉。

也就是說,分別將下面三行:

#LoadModule limitipconn_module libexec/apache/mod_limitipconn.so
#AddModule mod_limitipconn.c
#ExtendedStatus On

改成下面三行:

LoadModule limitipconn_module libexec/apache/mod_limitipconn.so
AddModule mod_limitipconn.c
ExtendedStatus On

然後新增這部分:



MaxConnPerIP 5



MaxConnPerIP 2



這個部分應該很好理解,您可以參考原網站的 README 給的範例來設定:
http://dominia.org/djao/limitipconn-README

Okay,到這裡就設定完成了。

* 啟動!

請下下面的指令,先檢查看看設定檔有沒有錯誤:
apachectl configtest

如果沒有錯誤,那麼就用下面的指令讓 apache 重新啟動吧:
apachectl restart




  • 贊助網站       

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

  • 1 樓住戶:龍龍
    發表時間:2007-02-17

    Apache mod_limitipconn
    http://dominia.org/djao/limitipconn.html

    這個 mod 可以用來檔 flashget, net transport, netants 之類的多線程下載程式,
    開太多線, 對 server 造成負擔, 又不會比較快

    FreeBSD
    cd /usr/ports/www/mod_limitipconn && make install

    編輯 httpd.conf
    LoadModule limitipconn_module libexec/apache/mod_limitipconn.so
    AddModule mod_limitipconn.c
    ExtendedStatus On

    新增


    MaxConnPerIP 2


    MaxConnPerIP 2



    若有 VirtualHost, 請加到對應的 block

    apachectl restart 後, 測試一下
    log 裡面會發現 503, 就是被限制的線程
    220.130.142.100 - - [20/Aug/2004:01:32:43 +0800] "GET /test.rar HTTP/1.1" 503 395
    220.130.142.100 - - [20/Aug/2004:01:32:49 +0800] "GET /test.rar HTTP/1.1" 503 395
    220.130.142.100 - - [20/Aug/2004:01:32:55 +0800] "GET /test.rar HTTP/1.1" 503 395
    220.130.142.100 - - [20/Aug/2004:01:33:02 +0800] "GET /test.rar HTTP/1.1" 503 395
    220.130.142.100 - - [20/Aug/2004:01:33:08 +0800] "GET /test.rar HTTP/1.1" 503 395
    220.130.142.100 - - [20/Aug/2004:01:33:14 +0800] "GET /test.rar HTTP/1.1" 503 395





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

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