httpd 升級(jí)與 limitipconn 模組安裝
目的: 在已架設(shè)網(wǎng)站的 Apache HTTP Server 升級(jí)版本, 並加入 mod_limitipconn (限制同一 IP 最大 Connection 數(shù)量) 模組
環(huán)境: Fedora Core 1 httpd 2.0.47 → 2.0.55
下載並解包相關(guān) Source Tar Ball
cd /usr/local/src
wget
http://apache.cdpa.nsysu.edu.tw/httpd/httpd-2.0.55.tar.bz2wget
http://dominia.org/djao/limit/mod_limitipconn-0.22.tar.gztar 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
調(diào)整環(huán)境, 修改新的 httpd.conf
cd /usr/local/apache2
rmdir logs
ln -s /var/log/httpd logs 繼續(xù)使用原來存放 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... 待會(huì)在 httpd.conf 加入 LoadModule ssl_module, 所以這邊註解掉
vi httpd.conf 調(diào)整相關(guān)設(shè)定, 以符合原本的網(wǎng)站環(huán)境
修改:
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 視需求載入相關(guān)模組
AddType application/x-httpd-php .php 要能執(zhí)行 php 網(wǎng)頁, 除載入模組外, 記得加上這行
<IfModule mod_dav_fs.c>
DAVLockDB /var/lib/dav/lockdb 想使用 WebDAV 一定要加上這行
</IfModule>
<IfModule mod_limitipconn.c>
<Location /var/www/html>
MaxConnPerIP 2 每個(gè) IP 最多 2 個(gè) Connection
</Location>
</IfModule>
更多的 mod_limitipconn 設(shè)置參考停止原 HTTP Server 運(yùn)作, 啟動(dòng)新安裝之 HTTP Server
/etc/init.d/httpd stop
/usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd.conf -k start
開機(jī)時(shí), 自動(dòng)啟動(dòng)新安裝之 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
參考資料:
mod_limitipconn.c 官方網(wǎng)頁建立一個(gè)帶寬、線程可控的下載型WEB網(wǎng)站資安論壇 - 去掉 Apache Banner 的方法相關(guān)連結(jié):
mod_bandwidth 官方網(wǎng)頁Apache HTTP Server + Mozilla Calendar / SunbirdNetfilter Extensions: Patch-O-Matic--- 2006.04.19 補(bǔ)充
讓 Fedora Core 3 (從 httpd-2.0.53 升級(jí) 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 註解掉, 才能啟動(dòng) Apache HTTP Server
--- 2006.04.20 補(bǔ)充
./configure --enable-forward 就能在 PHP 反查透過 Proxy 連線的使用者真實(shí) IP:
<?php
echo ‘<p>IP: ‘ . $_SERVER[‘REMOTE_ADDR‘] . ‘</p>‘;
echo ‘<p>Real IP: ‘ . $_SERVER[‘HTTP_X_FORWARDED_FOR‘] . ‘</p>‘;
?>
如果使用者直接連線, HTTP_X_FORWARDED_FOR 的內(nèi)容是空白
如果透過可反查真實(shí) IP 的 Proxy Server 連線, 會(huì)顯示反查結(jié)果 IP
如果透過不可反查的 Proxy Server 連線, 會(huì)顯示 unknown
Posted by Jamyy at 2006年04月18日 14:36
from:
http://cha.homeip.net/blog/archives/2006/04/httpd_limitipco.html#more