目的: 一臺Redhat linux 6.2 用為防火墻,專線連結Chinanet,對內連結
局域網段192.168.11.0/24,需要enable PHP4和Mysql數據庫,且局域網 上有另一臺Apache服務器192.168.11.2,需要對外部用戶提供服務,利用 防火墻上編譯的Apache反向代理和名字虛擬主機的功能來實現
地址: 防火墻外部地址為a.b.c.210,且別名第二個地址為a.b.c.211,內部網卡 地址為192.168.11.5,內部LAN上的Apache服務器為192.168.11.2
實現: 1.下載三個源文件到防火墻機器的/tmp下 apache_1.3.12.tar.gz mysql-3.22.32.tar.gz php-4.0.1pl2.tar.gz
2. 在/tmp下分別解開三個文件
# tar xvfz apache*gz # tar xvfz mysql*gz # tar xvfz php*gz
3. 進入/tmp/mysql*,編譯mysql #./configure --prefix=/usr/local/mysql #make #make install #scripts/mysql_install_db #/usr/local/mysql/bin/safe_mysqld & #/usr/local/mysql/bin/mysqladm -u root password newpassword
4. 進入/tmp/php*,編譯PHP4 #./configure --with-mysql --with-apache=../apche_1.3.12 --enable-track-vars #make;make install
5. 下載反向代理X-forward-for模塊,地址是 http://perl.apache.org/guide/download.html#mod_proxy_add_forward 下載后放該文件mod_proxy_add_forward.c到/tmp/apache_1.3.12/src/modules/ extra/目錄下
5.編譯Apache,加入PHP4模塊 和大多數共享模塊庫 ./configure --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a --activate-module=src/modules/extra/mod_proxy_add_forward.c --enable-module=most --enable-shared=max
6. 拷貝php.ini-dist到其它目錄 # cd /tmp/php* # cp php.ini-dist /usr/local/lib/php.ini
7.編輯/usr/local/apache/conf/httpd.conf中的AddType行 AddType application/x-httpd-php4 .php
8. 編輯/usr/local/apache/conf/httpd.conf中的AddModule行,
把mod_proxy_add_forward放在mod_proxy之前。
9. 在/usr/local/apache/conf/httpd.conf的末尾增加下面的行 NameVirtualHost 202.96.240.210
servername host.yourdomain.com errorlog /var/log/httpd/shopu/error_log transferlog /var/log/httpd/shopu/access_log rewriteengine on rewriterule ^(/.*)$ http://192.168.11.2/$1 [P,L] #rewritelog /var/log/httpd/shopu/rewrite_log #rewriteloglevel 9 proxyrequests off
其中rewritelog and rewriteloglevel兩行如果去掉注釋則幫助查找rewriterule 記錄
|