首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

Hosts绑定新思路之HTTP署理篇

2012-12-19 
Hosts绑定新思路之HTTP代理篇现状平时开发,测试,功能预演阶段,为了能够正常访问应用,需要做Hosts绑定.随着

Hosts绑定新思路之HTTP代理篇

现状

平时开发,测试,功能预演阶段,为了能够正常访问应用,需要做Hosts绑定.随着应用数量的不断增多,绑定量也是急剧上升.例如最近工作平台三期项目,需要绑定的环境多达44个.一旦有变动,需要通知所有人员做本地Hosts的调整,维护成本那是相当地大.

?

用一张图,来描述下目前我们的方案:

Hosts绑定新思路之HTTP署理篇

?

如果站在面向对象编程的角度,来思考这张图,我们会发现.

1.???????利用客户端本地Hosts绑定来实现,并且客户端数量不可控—利用客户端解决需求,但客户端维护不在可控范围内

2.???????Hosts绑定是非常不稳定的—需求易变

?

这样的设计,违反了”封装变化”的设计原则,故一旦有变动,维护成本非常大.

?

新方案思路

按照”封装变化”的设计原则,我们就应该把”域名绑定”这个易变需求,进行统一管理.

看上图,我们会发现,DNS的职责就是做域名解析的,并且DNS管理比较可控.

于是第一反应,我们可以使用内部域名解析服务器来绑定这些域名.

但是问题又来了,DNS来做测试环境域名解析,太重量级了.同一个域名,对应测试服务器IP有多个,绑定哪一个好呢?并且域名对应IP不断变化,IT DNS负责人不被我们累死啊??

?

既然DNS上做文章不可行,又需要统一管理的地方,那么我们只能再抽象出一个新的概念来.

同样,我们利用一张图,来描述下整体架构.

Hosts绑定新思路之HTTP署理篇

?

与上图相对,此图多了一个”代理服务器”的概念,即Hosts绑定动作在此概念上完成.

流程如下:

1.???????客户端浏览器设置代理服务器,将所有请求发送到代理服务器上

2.???????代理服务器检查本地Hosts绑定,如绑定则直接解析,反之进入流程3

3.???????代理服务器通过内部域名服务器解析域名

4.???????代理服务器发送请求到测试服务器上,并且将响应内容返回给客户端

?

具体尝试性实施方案如下(在XX项目过程中有成功案例)

1.???????利用squid搭建代理服务器?(代理地址:?10.20.131.207:3128)

备注:

Squid配置介绍见附录I

?

2.???????浏览器配置代理

全局代理:?代理服务器上,直接填写?10.20.131.207 3128

局部代理:?通过pac实现,选择”使用自动配置脚本”,脚本格式内容如下:

Hosts绑定新思路之HTTP署理篇

?

备注:

Pac脚本详细介绍见附录II

为了防止将配置工作带给PD,销售等,我们可以使用配置好的绿色浏览器提供直接使用.

推荐一款:GreenBrowser: http://www.morequick.com/indexen.htm

?

IE具体配置,见下图:

Hosts绑定新思路之HTTP署理篇

?

Firefox同样支持代理和pac脚本

Chrome需要安装proxy switchy插件来支持.

?

改进方案思路

上述的方案中,有两个比较大的缺陷

1.???????代理服务器没有多实例概念

代理服务器通过hosts绑定.hosts是全局性的,意味着一台代理服务器只能服务一组需求.而事实上,我们不同的项目需要的绑定都是不一样的.

2.???????特性化需求不能满足

绑定全在代理服务器上做了,客户端本地个性化需求无法支持

?

所以,我理想中整体架构是这样的,见图:

Hosts绑定新思路之HTTP署理篇

1.???????优先查看本地hosts文件

2.???????代理服务器支持多实例部署,不同实例有不同的hosts绑定配置.

?

目前具体实现方案,还在构思中.欢迎大家提供实现方案思路.

?

附录I

Squid权威指南(中文版):?http://home.arcor.de/pangj/squid/chap01.html

附录II

Pac介绍:?????????????? http://en.wikipedia.org/wiki/Proxy_auto-config

Pac函数介绍: ???????http://findproxyforurl.com/pac_functions_explained.html

热点排行