FreeBSD連載(93):反向代理負載均衡

2000年2月3日 02:26 王波

反向代理負載均衡

  前面提到了使用代理伺服器可以將請求轉發給內部的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的加速模式與此相似,但沒有實現對多內 部伺服器的均衡設置。雖然實現這個任務並不能算是特別複雜,然而由於要求特別高的效率,則實現起來並不是十分簡單。

  使用反向代理的好處是,可以將負載均衡和代理伺服器的高速緩存技術結合在一起,提供有益的性能。然而它本身也 存在不小的問題,首先就是必須為每一種服務都專門開發一個反向代理伺服器,這就不是一個輕松的任務了。並且,雖然代理 伺服器本身雖然可以設計的效率非常高,但是每針對每一次代理,代理伺服器就必須維護兩個連接,一個對外的連接,一個對 內的連接,因此對於特別高的連接請求的時候,代理伺服器的負載也就非常之大了。很可能在最後反向代理伺服器成為了服務 的瓶頸。