分享

httpd 升級與 limitipconn 模組安裝...

 农夫子oice 2007-04-27

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./httpd/httpd-2.0.55.tar.bz2
wget http:///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"

<Directory "/usr/local/apache2/htdocs"> --> "/var/www/html"

ServerTokens Full --> Prod

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

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

<Directory "/usr/local/apache2/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 網頁, 除載入模組外, 記得加上這行

<IfModule mod_dav_fs.c>

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

</IfModule>

<IfModule mod_limitipconn.c>

<Location /var/www/html>

MaxConnPerIP 2 每個 IP 最多 2 個 Connection

</Location>

</IfModule>

更多的 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


參考資料:

相關連結:


--- 2006.04.19 補充

讓 Fedora Core 3 (從 httpd-2.0.53 升級 2.0.55) 啟用 SSL 的方法

./configure --enable-ssl --with-ssl=/usr/include/openssl

安裝後 ssl_module 是 built-in 的, 所以 httpd.conf 和 ssl.conf 都不用再 LoadModule ssl_module

另須將 ssl.conf 裡面的 SSLCryptoDevice builtin 註解掉, 才能啟動 Apache HTTP Server


--- 2006.04.20 補充

./configure --enable-forward 就能在 PHP 反查透過 Proxy 連線的使用者真實 IP:

<?php

echo ‘<p>IP: ‘ . $_SERVER[‘REMOTE_ADDR‘] . ‘</p>‘;
echo ‘<p>Real IP: ‘ . $_SERVER[‘HTTP_X_FORWARDED_FOR‘] . ‘</p>‘;

?>

如果使用者直接連線, HTTP_X_FORWARDED_FOR 的內容是空白
如果透過可反查真實 IP 的 Proxy Server 連線, 會顯示反查結果 IP
如果透過不可反查的 Proxy Server 連線, 會顯示 unknown

Posted by Jamyy at 2006年04月18日 14:36

from:  http://cha./blog/archives/2006/04/httpd_limitipco.html#more

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多