我们通过一个实例介绍Apache逆向代理的配置方法。假设在企业内部网络中有WWW服务器,我们希望这台服务器能够通过连接到Intemet的防火墙提供对外部的WWW服务。
这种把WWW服务器设在网络内部的方法可以把WWW服务器与外部世界隔离,提高安全性。这时,我们需要在防火墙上也安装Apache服务器,使用它提供对WWW服务器的代理访问。同时,结合我们前面介绍的虚拟主机技术,把防火墙作为Apache虚拟主机,使得防火墙上的主页不会被访问到。内部局域网中的WWW服务器
IP地址为192.168.1.2,防火墙主机内部IP地址为192.168.1.1,外部IP地址为202.5.83.124。
配置防火墙上Apache的步骤如下。
(1)在/etc/httpd/conf/httPd.conf文件中添加虚拟主机配置。
NameVirtualHost 202.5.83.124
servername www.company.com
errorlog/var/log/httpd/error―log
transferlog/var/log/httpd/access―log
rewriteengine On
proxyrequests off
usecanonicalname off
rewriterule^/(.*)$http://192.168.1.2$ 1 [P,L]
(2)配置局域网中的DNS服务器,把www.company.com指向202.5.83.124。这样,所有对IP地址202.5.83.124的访问都会被重新导向到内部WWW服
务器中。我们还需要对局域网内部WWW服务器的配置进行修改,具体步骤如下。
1]Apache采用默认配置,主目录为/home/httpd/html,主机域名为company.com.cn,别名为www.company.com,并且在srm.conf中添加以下别名
定义。
Alias /pub/home/ftp/pub/
DefaultType application/octet―stream
2]在/etc/hnpd/conf/access.conf中增加一项。
Options lndexes
AllowOverride AuthConfiq
order allow,deny
allow from all
3]在/home/ftp/pub目录下放人.htaccess文件,内容如下。
#cat.htaccess
AuthName Branch Office Public Software Download Area
AuthType Basic
AuthUserFile /etc/.usrpasswd
require valid-user
4]执行如下命令:
#htpasswd -c /etc/.usrpasswd user1
分别创建允许访问/pub文件服务的不同的外部用户名和口令。