如何处理虚拟主机的发布
在上一篇博文中,我们讨论了如何利用
ISA2006
发布内网的多个
Web
站点,这些
Web
站点分布在不同的
Web
服务器上,我们只要用发布规则中的公共名称加以区分就可以了。今天我们要把难度再加大一些,如果一台
Web
服务器上有虚拟主机,这些虚拟主机该如何发布呢?
其实发布这些虚拟主机也不难,我们知道
IIS
实现虚拟主机有三种方法,
IP
,端口和主机头,一般在工作中大都采用主机头区分虚拟主机。既然如此,那在发布虚拟主机时,我们就可以依靠访问者提交的主机头来匹配发布规则,恰好
ISA
又有转发原始主机头的功能,这下子问题就全都解决了。
举个例子来说明,实验拓扑和上篇博文中一样,
Denver
和
Perth
是内网的两台
Web
服务器。现在
Denver
上有两个网站,分别是
[url]www.contoso.com[/url]
和
mail.contoso.com
,我们的目标就是把这两个虚拟主机发布到外网。这个目标实现起来并不难,在
ISA
上为
Denver
的两个网站各自创建一条发布规则,两条发布规则依靠公共名称区分两个网站,然后
ISA
启用转发原始主机头功能,这样就一切
OK
了。当外网访问
[url]www.contoso.com[/url]
时,
ISA
根据访问域名匹配发布规则,然后按照发布规则的要求将原始主机头
[url]www.contoso.com[/url]转发给
Denver
,
Denver
根据转发来的原始主机头就可以判断出访问者要访问哪个虚拟主机,然后将目标网站的内容返回给访问者。
实验步骤如下:
一
准备虚拟主机
在
Denver
上准备好两个虚拟主机,如下图所示,我们在
Denver
的
IIS
中看到了两个网站,
www
和
mail
。
两个网站的主机头分别是
mail.contoso.com
和
[url]www.contoso.com[/url]
。,如下图所示。
用浏览器访问,两个网站都访问正常,如下图所示。
OK
,实验用的虚拟主机已经准备好了!
二
在
ISA
上创建访问规则
上篇博文中我们在
ISA
上创建了两条发布规则,这次实验我们只要把发布规则复制一下再稍作修改就可以了。如下图所示,我们在发布
denver.contoso.com
的规则上点击右键,选择“复制”。
然后在发布规则上点击右键,如下图所示,选择“粘贴”。
这样我们就有了两条发布规则,我们只要修改这两条规则就可以满足发布虚拟主机的需求。
首先修改第一条发布规则,我们要利用这条规则发布
denver
上的
[url]www.contoso.com[/url]
,如下图所示,在规则属性的常规标签中,修改规则的名称为“发布内网的
[url]www.contoso.com[/url]
”。
切换到规则属性的“公共名称”标签,编辑原有的公共名称
denver.contoso.com
,如下图所示,把公共名称修改为
[url]www.contoso.com[/url]。
切换至规则属性的“到”标签,如下图所示,勾选“转发原始主机头而不是内部站点名称字段中指定的实际主机头”,这是关键之处,它要求
ISA
将访问者的原始主机头转发给
Web
服务器,
Web
服务器正式凭借原始主机头才能判断出访问目标是哪个虚拟主机。
好了,为发布[url]www.contoso.com[/url]
而修改的规则已经完成,接下来我们要修改第二条发布规则,让它能够发布
mail.contoso.com
。如下图所示,在第二条发布规则属性的“常规”标签中,修改规则名称为“发布内网的
mail.contoso.com
”。
切换到规则属性的“公共名称”标签,编辑原有的公共名称
denver.contoso.com
,如下图所示,把公共名称改为
mail.contoso.com
。
切换到规则属性的“到”标签,勾选“转发原始主机头而不是内部站点名称字段中指定的实际主机头”。
修改后的发布规则如下图所示。
三
在客户机上测试
在
ISA
上做好发布规则后,我们在
Istanbul
上测试一下,首先
Istanbul
仍然是利用简单的
Hosts
文件进行域名解析,解析结果如下图所示。
测试一下,先访问
[url]www.contoso.com[/url]
,如下图所示,非常理想。
再来测试一下
mail.contoso.com
,如下图所示,一切正常,
OK
,实验成功!
做了这么多工作,其实发布虚拟主机关键之处就是要在
ISA
上转发原始主机头,掌握了这点,就基本上能够掌控全局了!