專業施工團隊
專營室內裝潢、辦公室裝潢、店面裝潢
油漆快清辦公桌吧
辦公室細菌量比廁所高400倍!

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

httpd 升級與 limitipconn 模組安裝

房東:ㄚ頭
發表時間:2007-02-26


httpd 升級與 limitipconn 模組安裝
目的: 在已架設網站的 Apache HTTP Server 升級版本, 並加入 mod_limitipconn (限制同一 IP 最大 Connection 數量) 模組

環境: Fedora Core 1 httpd 2.0.47 → 2.0.55

下載並解包相關 Source Tar Ball

cd /usr/local/src
wget http://apache.cdpa.nsysu.edu.tw/httpd/httpd-2.0.55.tar.bz2
wget http://dominia.org/djao/limit/mod_limitipconn-0.22.tar.gz
tar jxf httpd-2.0.55.tar.bz2
tar zxf mod_limitipconn-0.22.tar.gz

安裝 Apache HTTP Server 2.0.55

cd httpd-2.0.55
patch -p1 < ../mod_limitipconn-0.22/apachesrc.diff
./buildconf
./configure --prefix=/usr/local/apache2
make
make install

安裝 mod_limitipconn 模組

cd ../mod_limitipconn-0.22
vi Makefile

APXS=/usr/local/apache2/bin/apxs
APACHECTL=/usr/local/apache2/bin/apachectl

make
make install

調整環境, 修改新的 httpd.conf

cd /usr/local/apache2
rmdir logs
ln -s /var/log/httpd logs 繼續使用原來存放 log 的地方 (/var/log/httpd)
ln -s /var/run 讓 httpd.pid 一樣置於 /var/run (for logrotate)

cp /usr/lib/httpd/modules/* ./modules 將原先的 module 複製過來

cd conf
mv ssl.conf ssl.conf.bak
ln -s /etc/httpd/conf.d/ssl.conf
vi ssl.conf

#LoadModule ssl_module... 待會在 httpd.conf 加入 LoadModule ssl_module, 所以這邊註解掉

vi httpd.conf 調整相關設定, 以符合原本的網站環境

修改:

User nobody --> apache
Group #-1 --> apache

PidFile logs/httpd.pid --> run

#ExtendedStatus On --> ExtendedStatus On 取消此行註解才能使用 limitipconn 模組

DocumentRoot "/usr/local/apache2/htdocs" --> "/var/www/html"

--> "/var/www/html"

ServerTokens Full --> Prod

ServerSignature On --> Off 修改以上這兩行是為了隱藏伺服器資訊

ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/" --> "/var/www/cgi-bin/"

--> "/var/www/cgi-bin"

新增:

LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule php4_module modules/libphp4.so 視需求載入相關模組

AddType application/x-httpd-php .php 要能執行 php 網頁, 除載入模組外, 記得加上這行



DAVLockDB /var/lib/dav/lockdb 想使用 WebDAV 一定要加上這行







MaxConnPerIP 2 每個 IP 最多 2 個 Connection





更多的 mod_limitipconn 設置參考

停止原 HTTP Server 運作, 啟動新安裝之 HTTP Server

/etc/init.d/httpd stop
/usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd.conf -k start

開機時, 自動啟動新安裝之 HTTP Server

chkconfig httpd stop
vi /etc/rc.d/rc.local

/usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd.conf -k start





  • 贊助網站       

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

  • 1 樓住戶:路人
    發表時間:2007-02-27

    * 前言

    如果你使用 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 人回應  選擇頁數 【第1 頁】 

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