当前位置: 首页 > news >正文

发布Web服务器上的虚拟主机:ISA2006系列之十一

如何处理虚拟主机的发布

在上一篇博文中,我们讨论了如何利用ISA2006发布内网的多个Web站点,这些Web站点分布在不同的Web服务器上,我们只要用发布规则中的公共名称加以区分就可以了。今天我们要把难度再加大一些,如果一台Web服务器上有虚拟主机,这些虚拟主机该如何发布呢?
其实发布这些虚拟主机也不难,我们知道IIS实现虚拟主机有三种方法,IP,端口和主机头,一般在工作中大都采用主机头区分虚拟主机。既然如此,那在发布虚拟主机时,我们就可以依靠访问者提交的主机头来匹配发布规则,恰好ISA又有转发原始主机头的功能,这下子问题就全都解决了。

举个例子来说明,实验拓扑和上篇博文中一样,DenverPerth是内网的两台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]转发给DenverDenver根据转发来的原始主机头就可以判断出访问者要访问哪个虚拟主机,然后将目标网站的内容返回给访问者。
 
实验步骤如下:
  准备虚拟主机

Denver上准备好两个虚拟主机,如下图所示,我们在DenverIIS中看到了两个网站,wwwmail

 

两个网站的主机头分别是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上转发原始主机头,掌握了这点,就基本上能够掌控全局了!

相关文章:

  • NFS部署及优化(二)
  • java枚举与.net中的枚举区别
  • 在Hibernate中配置多对多连接表
  • ionic2 自定义cordova插件开发以及使用 (Android)
  • 语录十八
  • 什么样的_BUG_会让你目瞪口呆?
  • C#编程利器之二:结构与枚举(Structure and enumeration)
  • 基础搜索算法的常见题型
  • Memcache安装详解
  • Adobe Premiere-DV采集视频格式常识
  • 5年运维经验分享:一个小白走向高级运维工程师之路
  • 举例介绍活动目录的优势
  • JMXtrans + InfluxDB + Grafana实现Kafka性能指标监控
  • Javascript 控制 Flash FLV视频播放器 --国外开源
  • PHP小知识
  • 《剑指offer》分解让复杂问题更简单
  • 08.Android之View事件问题
  • css系列之关于字体的事
  • C学习-枚举(九)
  • Git 使用集
  • LeetCode18.四数之和 JavaScript
  • React的组件模式
  • vue:响应原理
  • 成为一名优秀的Developer的书单
  • 后端_ThinkPHP5
  • 机器学习中为什么要做归一化normalization
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • ​批处理文件中的errorlevel用法
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)四层和七层负载均衡的区别
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .Net 中Partitioner static与dynamic的性能对比
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .NET学习全景图
  • [acwing周赛复盘] 第 69 场周赛20220917
  • [EULAR文摘] 脊柱放射学持续进展是否显著影响关节功能
  • [Flexbox] Using order to rearrange flexbox children
  • [Intel Edison开发板] 05、Edison开发基于MRAA实现IO控制,特别是UART通信
  • [iOS]-NSTimer与循环引用的理解
  • [leetcode 189][轮转数组]
  • [leetcode]Flatten Binary Tree to Linked List
  • [Linux] 进程间通信基础
  • [math]判断线段是否相交及夹角
  • [Oh My C++ Diary]善用三目运算符(a?b:c)
  • [Open3d]: 知识记录