httpd 升級與 limitipconn 模組安裝

来源:百度文库 编辑:神马文学网 时间:2024/04/28 01:12:38
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
wgethttp://apache.cdpa.nsysu.edu.tw/httpd/httpd-2.0.55.tar.bz2
wgethttp://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
參考資料:
mod_limitipconn.c 官方網頁建立一个带宽、线程可控的下载型WEB网站資安論壇 - 去掉 Apache Banner 的方法
相關連結:
mod_bandwidth 官方網頁Apache HTTP Server + Mozilla Calendar / SunbirdNetfilter Extensions: Patch-O-Matic
--- 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:
echo ‘

IP: ‘ . $_SERVER[‘REMOTE_ADDR‘] . ‘

‘;
echo ‘

Real IP: ‘ . $_SERVER[‘HTTP_X_FORWARDED_FOR‘] . ‘

‘;
?>
如果使用者直接連線, HTTP_X_FORWARDED_FOR 的內容是空白
如果透過可反查真實 IP 的 Proxy Server 連線, 會顯示反查結果 IP
如果透過不可反查的 Proxy Server 連線, 會顯示 unknown
Posted by Jamyy at 2006年04月18日 14:36
from: http://cha.homeip.net/blog/archives/2006/04/httpd_limitipco.html#more