虛擬服務器:對外它是單一的入口,對內有很多台計算機為它服務.對使用它的人來說,它是一台機器,有單一的入口點.具體的實現技術包括兩種: 應用層的虛擬服務器,網絡層的虛擬服務器.
1.應用層的虛擬服務器是利用應用層的轉發實現的,相當於一台代理服務器,這正是經常提到的虛擬服務器.
實現方式:利用apache的 ProxyPass 可以實現對虛擬服務器的配置.(httpd.conf中)
如某公司的WWW服務器為 http://www.abc.com/ 在httpd.conf中作如下設置:
ProxyPass /sales http://192.168.0.1/
ProxyPass /rd http://192.168.0.2/
ProxyPass /head http://192.168.0.3/
如上設置生效了以後,對http://www.abc.com/rd的方位會轉到http://192.168.0.2上來.
對http://www.abc.com/head的訪問會轉到http://192.168.0.2上來,
客戶不直接同 192.168.0.x交互,所有的請求都通過www.abc.com來轉發.
過程如下:
client (http://www.abc.com/sales) <--> www.abc.com <--> 192.168.0.1
`
2.ip層的虛擬服務器.它是利用ip層的反向masq來實現的.
實現方式:通過對ip包頭的目的地址的改寫來實現的.Linux kernel 2.2.x中帶的ip port forward 就是實現的方式.你需要一個管理工具來管理這個方式.此種方式也稱為反向NAT.
設置方法:
1. 內核編譯中選擇 ip_port_forward(??)
2. 利用ipmasqadm 來設置 ip_port_forward.
ipmasqadm -A www.abc.com:80 -R 192.168.0.1:80
具體用法請參考man..這裡不對.
ipmasqadm -A www.abc.com:80 -R 192.168.0.2:80
3.設置ipchains
ipchains -A forward -j MASQ -s 192.168.0.0/24
ipchains -A forward -j MASQ -d 192.168.0.0/24
4. OK..
測試:
1 現在你訪問http://www.abc.com/
2 你訪問的ip包發到www.abc.com然後目標地址改為192.168.0.x, x為1或2可以由系統的負載平衡算法來選定.
3 處理完畢,請求包發回www.abc.com,然後在發回給客戶.
這樣,機器就可以擴充了.....你的www服務器負載太大,利用以上兩種方式均可以實現.你的telnet服務器負載太大,可以用方法2實現.