nginx之反向代理和負載均衡
阿新 • • 發佈:2021-10-29
1、反向代理
1.什麼是代理
代理一詞往往並不陌生, 該服務我們常常用到如(代理理財、代理租房、代理收貨等等),如下圖所示
2.沒有代理
在沒有代理模式的情況下,客戶端和Nginx服務端,都是客戶端直接請求服務端,服務端直接響應客戶端。
3.有代理
那麼在網際網路請求裡面,為了安全客戶端往往無法直接向服務端發起請求,就需要用到代理服務,來實現客戶端和服務端通訊,如下圖所示
4.Nginx代理服務常見模式
Nginx作為代理服務,按照應用場景模式進行總結,代理分為
1.正向代理
2.反向代理
1)正向代理
正向代理,(內部上網) 客戶端 <—> 代理 -> 服務端
2)反向代理
反向代理,用於公司叢集架構中,客戶端 -> 代理 <—> 服務端
3)正向代理與反向代理的區別
1.區別在於形式上服務的”物件”不一樣
2.正向代理代理的物件是客戶端,為客戶端服務
3.反向代理代理的物件是服務端,為服務端服務
2、負載均衡
1、平均分配
2、權重大小分配
負載均衡是由反向代理來實現的。
負載均衡就是將流量按照一定的方式分配給web機器
選擇使用Nginx來搭建負載均衡伺服器
1、什麼叫四層負載均衡
四層負載均衡是基於TCP/IP協議的
所謂四層負載均衡指的是OSI七層模型中的傳輸層,那麼傳輸層Nginx已經能支援TCP/IP的控制,
所以只需要對客戶端的請求進行TCP/IP協議的包轉發就可以實現負載均衡,
那麼它的好處是效能非常快、只需要底層進行應用處理,而不需要進行一些複雜的邏輯
2、什麼是七層負載均衡
七層負載均衡是基於HTTP協議的
七層負載均衡它是在應用層,那麼它可以完成很多應用方面的協議請求,
比如我們說的http應用的負載均衡,
它可以實現http資訊的改寫、頭資訊的改寫、安全應用規則控制、URL匹配規則控制、以及轉發、rewrite等等
的規則,所以在應用層的服務裡面,我們可以做的內容就更多,那麼Nginx則是一個典型的七層負載均衡SLB
3、四層和七層負載均衡的區別
四層負載均衡資料包在底層就進行了分發,而七層負載均衡資料包則是在最頂層進行分發、由此可以看出,
七層負載均衡效率沒有四負載均衡高。
但七層負載均衡更貼近於服務,如:http協議就是七層協議,我們可以用Nginx可以作會話保持,
URL路徑規則匹配、head頭改寫等等,這些是四層負載均衡無法實現的。
HTTP 基於 TCP/IP 協議的,所以,四層負載均衡的效能要高於七層負載均衡。
但是四層負載均衡是不支援域名的。
所以,一般使用七層負載均衡來負載web服務。