nginx是什么意思能干什么 nginx是什么意思( 二 )


正向代理的用途:

  • 訪問原來無法訪問的資源 , 如Google
  • 可以做緩存 , 加速訪問資源
  • 對客戶端訪問授權 , 上網進行認證
  • 代理可以記錄用戶訪問記錄(上網行為管理) , 對外隱藏用戶信息
反向代理
明白了什么是正向代理 , 我們繼續看關于反向代理的處理方式 , 舉例如我大天朝的某寶網站 , 每天同時連接到網站的訪問人數已經爆表 , 單個服務器遠遠不能滿足人民日益增長的購買欲望了 , 此時就出現了一個大家耳熟能詳的名詞:分布式部署;
也就是通過部署多臺服務器來解決訪問人數限制的問題;某寶網站中大部分功能也是直接使用Nginx進行反向代理實現的 , 并且通過封裝Nginx和其他的組件之后起了個高大上的名字:Tengine 。
有興趣的童鞋可以訪問Tengine的官網查看具體的信息:
http://tengine.taobao.org/ 。 那么反向代理具體是通過什么樣的方式實現的分布式的集群操作呢 , 我們先看一個示意圖(我把服務器和反向代理框在一塊 , 同屬于一個環境 , 后面我有介紹):
通過上述的圖解大家就可以看清楚了 , 多個客戶端給服務器發送的請求 , Nginx服務器接收到之后 , 按照一定的規則分發給了后端的業務處理服務器進行處理了 。 此時~請求的來源也就是客戶端是明確的 , 但是請求具體由哪臺服務器處理的并不明確了 , Nginx扮演的就是一個反向代理角色 。
客戶端是無感知代理的存在的 , 反向代理對外都是透明的 , 訪問者并不知道自己訪問的是一個代理 。 因為客戶端不需要任何配置就可以訪問 。
反向代理 , "它代理的是服務端" , 主要用于服務器集群分布式部署的情況下 , 反向代理隱藏了服務器的信息 。
反向代理的作用:
  • 保證內網的安全 , 通常將反向代理作為公網訪問地址 , Web服務器是內網
  • 負載均衡 , 通過反向代理服務器來優化網站的負載
項目場景
通常情況下 , 我們在實際項目操作時 , 正向代理和反向代理很有可能會存在在一個應用場景中 , 正向代理代理客戶端的請求去訪問目標服務器 , 目標服務器是一個反向單利服務器 , 反向代理了多臺真實的業務處理服務器 。
具體的拓撲圖如下:

nginx是什么意思能干什么 nginx是什么意思

文章插圖
二者區別
截了一張圖來說明正向代理和反向代理二者之間的區別 , 如圖 。
圖解:
在正向代理中 , Proxy和Client同屬于一個LAN(圖中方框內) , 隱藏了客戶端信息;
在反向代理中 , Proxy和Server同屬于一個LAN(圖中方框內) , 隱藏了服務端信息;
實際上 , Proxy在兩種代理中做的事情都是替服務器代為收發請求和響應 , 不過從結構上看正好左右互換了一下 , 所以把后出現的那種代理方式稱為反向代理了 。
負載均衡
我們已經明確了所謂代理服務器的概念 , 那么接下來 , Nginx扮演了反向代理服務器的角色 , 它是以依據什么樣的規則進行請求分發的呢?不用的項目應用場景 , 分發的規則是否可以控制呢?
【nginx是什么意思能干什么 nginx是什么意思】這里提到的客戶端發送的、Nginx反向代理服務器接收到的請求數量 , 就是我們說的負載量 。 請求數量按照一定的規則進行分發到不同的服務器處理的規則 , 就是一種均衡規則 。
所以~將服務器接收到的請求按照規則分發的過程 , 稱為負載均衡 。
負載均衡在實際項目操作過程中 , 有硬件負載均衡和軟件負載均衡兩種 , 硬件負載均衡也稱為硬負載 , 如F5負載均衡 , 相對造價昂貴成本較高 , 但是數據的穩定性安全性等等有非常好的保障 , 如中國移動中國聯通這樣的公司才會選擇硬負載進行操作;更多的公司考慮到成本原因 , 會選擇使用軟件負載均衡 , 軟件負載均衡是利用現有的技術結合主機硬件實現的一種消息隊列分發機制 。

nginx是什么意思能干什么 nginx是什么意思

推薦閱讀