发布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上转发原始主机头,掌握了这点,就基本上能够掌控全局了!

















本文转自yuelei51CTO博客,原文链接: http://blog.51cto.com/yuelei/87098,如需转载请自行联系原作者



相关文章
|
1天前
|
存储 安全 数据安全/隐私保护
Web应用程序的会话管理是一种跟踪和识别特定用户与Web服务器之间交互的技术
Python Web开发中,会话管理用于跟踪用户与服务器交互,如Flask框架提供的内置功能。以下是一个简单示例:安装Flask后,设置应用密钥,通过session读写用户状态。例如,创建一个显示和设置用户名称的Web应用,用户提交的名字将保存在会话中。在生产环境中,应安全存储密钥,如使用环境变量。扩展会话管理可借助第三方库实现更多功能,但可能需更多配置。
6 2
|
6天前
|
缓存 负载均衡 安全
深入探索Nginx高性能Web服务器配置与优化
【5月更文挑战第7天】本文深入探讨了Nginx的配置与优化,重点介绍了基础配置参数如`worker_processes`、`worker_connections`和`keepalive_timeout`,以及优化策略,包括使用epoll事件驱动模型、开启gzip压缩、启用缓存、负载均衡和安全配置。此外,还提到了性能调优工具,如ab、nginx-stats和nmon,以助于提升Nginx的性能和稳定性。
|
6天前
|
数据库 数据中心 虚拟化
云服务器和虚拟主机有什么区别
总的来说,云服务器提供更高级别的灵活性、控制和资源隔离,适用于需要定制化和更大资源的应用程序。虚拟主机是一种经济实惠的共享托管解决方案,适用于小型项目和个人网站。选择哪种服务取决于你的需求、预算和技术要求。
27 3
|
7天前
|
数据库 数据中心 虚拟化
云服务器和虚拟主机有什么区别
总的来说,云服务器提供更高级别的灵活性、控制和资源隔离,适用于需要定制化和更大资源的应用程序。虚拟主机是一种经济实惠的共享托管解决方案,适用于小型项目和个人网站。选择哪种服务取决于你的需求、预算和技术要求。
16 2
|
15天前
|
中间件 Go API
Golang深入浅出之-Go语言标准库net/http:构建Web服务器
【4月更文挑战第25天】Go语言的`net/http`包是构建高性能Web服务器的核心,提供创建服务器和发起请求的功能。本文讨论了使用中的常见问题和解决方案,包括:使用第三方路由库改进路由设计、引入中间件处理通用逻辑、设置合适的超时和连接管理以防止资源泄露。通过基础服务器和中间件的代码示例,展示了如何有效运用`net/http`包。掌握这些最佳实践,有助于开发出高效、易维护的Web服务。
28 1
|
18天前
|
机器学习/深度学习 数据挖掘 Python
使用Python实现简单的Web服务器
使用Python内置的http.server模块,本文演示了创建基本Web服务器的步骤。通过编写简单的代码,实现响应GET请求并返回“Hello, World!”。此外,还展示了如何扩展服务器功能,处理不同URL路径,如根路径和/about路径,并实现404错误页面。这个基础教程为理解HTTP服务器原理和Python网络编程入门提供了帮助。对于复杂Web应用,建议使用Flask或Django等高级框架。
|
19天前
|
负载均衡 监控 Unix
[AIGC] Nginx:一个高性能的 Web 服务器和反向代理
[AIGC] Nginx:一个高性能的 Web 服务器和反向代理
|
11天前
|
关系型数据库 MySQL
web简易开发(二){html5+php实现文件上传及通过关键字搜索已上传图片)}
web简易开发(二){html5+php实现文件上传及通过关键字搜索已上传图片)}
|
1天前
|
设计模式 开发框架 数据库
Python Web开发主要常用的框架
Python Web开发框架包括Django、Flask、Tornado和Pyramid。Django适用于复杂应用,提供ORM、模板引擎等全套功能;Flask轻量级,易于扩展,适合小型至中型项目;Tornado擅长处理高并发,支持异步和WebSockets;Pyramid灵活强大,可适配多种数据库和模板引擎,适用于各种规模项目。选择框架需依据项目需求和技术栈。
8 2

热门文章

最新文章