Nginx學習筆記-負載均衡和反向代理


1.代理與反向代理
代理服務器:
代理 內部網絡Internet的連接請求。
不支持外部對內部網絡的訪問請求。
反向代理服務器:
代理 外部網絡上的主機訪問 內部網絡
 
2.常見WEB負載均衡方法
(1)用戶手動選擇
常見於各個資源下載網站,用戶自己手動選擇從哪個服務器下載。
(2)DNS輪詢方式
對同一主機名,添加多條 A記錄,讓其DNS輪詢多個IP
可以通過Linux的dig命令查看域名解析情況:
dig xxx.baidu.com
DNS輪詢的缺點:
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不共享的問題。
如果能做到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可以是
 
 
7.負載均衡服務器的雙機高可用
兩種實現方式:
(1)一台主服務器加一台熱備服務器
(2)兩台負載均衡服務器


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM