目的: 一台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 记录 |