« 上一篇下一篇 »

内容分发和同步之反向代理

反向代理缓存到负载均衡调度器,反向代理服务器不止一次出现在书中,而这一次,我们又将目光转向了它在文件复制领域的表现

    事实上,反向代理机制本身就决定了它必须从后端服务器那里不断地复制内容到本地,而这种复制的触发条件,则是用户向反向代理服务器请求内容,我想这种方式也可以称为“动态同步”。

    那么,对于静态网页、图片等这些直接暴露给用户的内容来说,通过反向代理服务器实现远程复制,可能是一个更加简单有效的方式。而对于另一些无法由用户通过HTTP直接访问的文件,比如Web应用程序运行中需要的一些持续更新的配置文件,反向代理服务器对于它们的复制将无能为力,你仍然需要借助于前面介绍的复制方法。

    这样一来,我们或许可以将集中的Web服务器直接作为文件服务器的反向代理,或者采用多级代理的方式,类似于多级分发,减少单点压力,同时有利于同地域服务器之间的就近复制。

    另一方面,正式因为存在反向代理缓存,所以使用方向代理实现文件复制才有意义,因为这些静态网页或者图片可以长时间保留在反向代理服务器上,快速地为用户提供下载服务,而只有用户第一次请求他们的时候才需要触发复制。

    但是,缓存机制也提醒了我们,任何内容总是会有过期的时候,加如这些内容需要频繁的更新,同时你也希望给用户及时的体验,那么让这些内容频繁过期便在所难免。显然,这样会引发频繁的复制,别忘了复制是需要花时间的,就像羊毛出在羊身上,这部分时间仍然需要由用户来承担,你会发现相当一部分用户都在为了反向代理服务器到文件服务器的数据传输而买单。

    当然,这是比较极端的情况,而在大多数时候,我相信你的站点会有很多可以长期在反向代理服务器上保留的内容。

    使用反向代理的另外一个好处是,这种动态同步是基于标准的HTTP,那么对于同步所需要的服务器端程序,相比于sshd和rsyncd,Web服务器成为最佳选择,你对它已经再熟悉不过了,特别是它出色的并发处理能力,这使得它可以提供非常高效可靠的文件复制。

« 上一篇下一篇 »