1. 程式人生 > 其它 >nginx之反向代理和負載均衡

nginx之反向代理和負載均衡

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服務。