武当学艺之反向代理(转2)

上集和相关内容请见:http://blog.joycode.com/peon/articles/16504.aspx

接下来发生了一些事情,张翠山夫妇双双自尽,他们的儿子张无忌又被打伤,张三丰和武当诸侠都忙于给张无忌疗伤,无暇顾及各自弟子的武学,而且为了诸 侠和张老道的安全,给他们的问题不再直接交到他们手里,每人选了一个得意的弟子,代替自己解答问题,这些弟子的记忆力和反应都不错,可以解答大部分的问 题,假如遇到不会的问题,就先向师父请教,然后回答给提问题的弟子,这样不仅大大减轻了诸侠的负担,而且防止了一些危险,比如在在便条上下毒,保护了诸侠 的安全(徒弟的命就不值钱了?)。

在这种关系里,武当诸侠和他们的代理弟子构成了反向代理(Reverse Proxy)的关系,反向代理一般作用有三:减轻源服务器负载,保障源服务器安全,对源服务器进行负载均衡(Load Balance)。

一般反向代理置于源服务器的前端,配备大容量的内存和高速磁盘,缓存客户的请求,所以反向代理又称为服务器加速(Server accelerate)。源服务器一般不再和客户直接通讯,当客户请求没有缓存的内容或者动态内容时,反向代理向源服务器发送请求,然后把回应转发给客 户,在这种情况下,反向代理服务器通常要为一个请求同时维护两个会话。和普通的代理不同,反向代理一般只代理一台或者有限的几台服务器,对于客户而言,反 向代理服务器对于他们就相当于源服务器,对于源服务器而言,反向代理服务器通常就是唯一的客户,因为一般客户不和源服务器直接通信。典型情况下,源服务器 对于客户或者客户对于源服务器,都是不可见的。

过了一段时间,张三丰觉得无法根治张无忌的体内的玄冥寒气,决定带他下山到少林寺去碰碰运气,为了让请教张三丰的弟子不至于得不到解答,宋远桥和俞莲舟暂时代替张三丰答题,凡是有请教张三丰的问题,宋青书就轮流送到宋远桥或者俞莲舟的住所。

张老道不在山上,可是他负责的服务不会中断,这种情况可以称为离线缓存(Offline Caching),宋青书的所作的相当于把一个域名交替解析到两个或者以上的地址上去,这个就是DNS轮询。

张三丰所学太过渊博,单凭宋或者俞任何一人都难以回答所有的问题,两个人的知识加起来才可以勉强做到,但是宋青书却有时候把宋远桥不会的问题送到宋 远桥那里,俞莲舟也常常遇到这种尴尬(说明宋青书到底还是少了根筋)。这两位到底是高人,一合计,决定视情况采取以下三种办法之一:
1.假如宋远桥收到自己不会的,就写回复说自己很忙,而且这个问题俞莲舟很有研究,叫弟子另外写纸条问俞莲舟,俞也是如此这般。
2.宋远桥把纸条给俞莲舟解答,然后自己把解答给弟子。
3.宋远桥把纸条给俞莲舟解答,俞把解答给弟子。

第一种方法称为内容转向(URL Redirection),就是当服务器发送给客户端一个特殊回应和新的URL,表示客户应该在其他的地方取得内容,然后客户向新的URL提出请求以获取 内容,很多的协议都支持,开发过web的人对redirection和302 code应该都很熟悉。

第二种方法中,问问题的弟子,宋远桥,俞莲舟,还有张三丰构成了多重代理关系,宋相当于俞的反向代理,俞又是张三丰的反向代理。这个过程,对客户是完全不可见的。

第三种方法称为三角传输,宋,俞,弟子的请求应答构成了一个三角形,这种方式中,客户向A服务器发起请求,A服务器把请求转发到B服务器,然后根据客户的控制由B服务器向客户发送内容。

这三种方式各有优缺点,内容转向比较灵活,但是需要应用协议的支持(目前HTTP,MMS,RTSP支持),而且转向次数一般有限制。多重代理构造 复杂,而且因为代理需要维持双倍的会话,服务器负担很重。三角传输适合于请求流量小而回应内容流量多(比如流媒体)的情况,但是需要特殊网络设备 (radware wsd)的支持,某些情况下,三角传输的前端还易于成为瓶颈。

转自:http://blog.joycode.com/peon/archive/2004/03/21/16756.aspx

posted on 2005-06-03 15:25  KUDO  阅读(535)  评论(0编辑  收藏  举报

导航