反向代理负载均衡前面提到了使用代理服务器可以将请求转发给内部的Web服务器,使用这种加速模式显然可以提升静态网页的访问速度。然而,也可以考虑这样一种技术,使用代理服务器将请求均匀转发给多台Web服务器上,从而达到负载均衡的目的。
Apache开发组的一位成员Ralf S.Engelschall基于Apache的代理模块mod_proxy开发了反向代理模块mod_rproxy,用于实现负载均衡,请参考他的文章Load Balancing Your Web Site:http://www.WebTechniques.com/features/1998/05/engelschall/engelschall.shtml
这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web服务器,而这种代理方式是代理多个客户访问内部Web服务器,因此也被称为反向代理模式。Squid的加速模式与此相似,但没有实现对多内部服务器的均衡设置。虽然实现这个任务并不能算是特别复杂,然而由于要求特别高的效率,则实现起来并不是十分简单。
使用反向代理的好处是,可以将负载均衡和代理服务器的高速缓存技术结合在一起,提供有益的性能。然而它本身也存在不小的问题,首先就是必须为每一种服务都专门开发一个反向代理服务器,这就不是一个轻松的任务了。并且,虽然代理服务器本身虽然可以设计的效率非常高,但是每针对每一次代理,代理服务器就必须维护两个连接,一个对外的连接,一个对内的连接,因此对于特别高的连接请求的时候,代理服务器的负载也就非常之大了。很可能在最后反向代理服务器成为了服务的瓶颈。
未完,待续。。。