1.代理與反向代理
代理服務器:
代理內部網絡對Internet的連接請求。
不支持外部對內部網絡的訪問請求。
反向代理服務器:
代理外部網絡上的主機訪問內部網絡。
www.2cto.com
2.常見WEB負載均衡方法
(1)用戶手動選擇
常見於各個資源下載網站,用戶自己手動選擇從哪個服務器下載。
(2)DNS輪詢方式
對同一主機名,添加多條A記錄,讓其DNS輪詢多個IP
可以通過Linux的dig命令查看域名解析情況:
dig xxx.baidu.com
DNS輪詢的缺點: www.2cto.com
A.可靠性低
B.負載分配不均衡
因此DNS輪詢適用於可靠性要求不高的負載均衡,比如圖片服務器集群、純靜態網頁服務器集群等。
(3)四/七層負載均衡設備
通常作用與OSI的第四層或第七層
OSI:開放系統互連模型(Open System Interconnection)
具體7層
數據格式
功能與連接方式
典型設備
應用層 Application
網絡服務與使用者應用程序間的一個接口
網關
表示層 Presentation
數據表示、數據安全、數據壓縮
會話層 Session
建立、管理和終止會話
傳輸層 Transport
數據組織成數據段Segment
用一個尋址機制來標識一個特定的應用程序(端口號)
防火牆
網絡層 Network
分割和重新組合數據包Packet
基於網絡層地址(IP地址)進行不同網絡系統間的路徑選擇
路由器
數據鏈路層 Data Link
將比特信息封裝成數據幀Frame
在物理層上建立、撤銷、標識邏輯鏈接和鏈路復用 以及差錯校驗等功能。通過使用接收系統的硬件地址或物理地址來尋址
網橋、交換機、網卡
物理層Physical
傳輸比特(bit)流
建立、維護和取消物理連接
光纖、同軸電纜、
雙絞線、中繼器和集線器
3.多線多地區智能DNS解析與混合負載均衡方式
4.Nginx反向代理配置
使用反向代理之後,後端WEB服務器(以PHP為例),就不能直接通過$_SERVER['REMOTE_ADDR']變量來獲取用戶的真實IP了,這時獲取的將是Nginx負載均衡服務器的IP。此時需要在Nginx反向代理時添加Header頭信息X-Forwarded-For,讓後端服務器能通過$_SERVER['HTTP-X-FORWORDED-FOR']獲取用戶真實IP。參考平時我們常用的獲取用戶IP的函數。
5.動靜態網頁分離
Citrix NetScaler 4-7層負載均衡器(基於TCP)
Nginx負載均衡架構
6.關鍵的Upstream模塊
Upstream:Nginx負載均衡的主要模塊,位於http之內,默認的負載均衡方式為輪詢。
ip_hash:負載均衡時,將某個客戶端IP的請求,通過哈希算法,定位到同一台後端服務器上,以解決session不共享的問題。 www.2cto.com
如果能做到session共享,還是不要用這個配置,因為其可能造成負載不均衡。
摘除負載均衡服務器,需要設置其down,而不是刪除記錄,刪除記錄可能造成session失效(原來的back1hash到back2上去了)
upstream backend{
ip_hash;
server back1.10jqka.com.cn;
server back2.10jqka.com.cn;
server back3.10jqka.com.cn down;
}
server
語法:
server name [parameters]
默認none
name可以是域名、IP、端口號、UNIX Socket
parameters可以是
www.2cto.com
7.負載均衡服務器的雙機高可用
兩種實現方式:
(1)一台主服務器加一台熱備服務器
(2)兩台負載均衡服務器