上一篇我們介紹了Nginx的背景,現在我們就要開始正式對Nginx的學習了。本篇我們將對Nginx的基本定義進行介紹,了解Nginx到底是什么。然后我們會介紹Nginx最基本的三個概念:反向代理、負載均衡、動靜分離。
1、Nginx是什么
Nginx(“engine x”)是一個高性能的HTTP和反向代理服務器,特點是占有內存少,并發能力強,事實上nginx的并發能力確實在同類型的網頁服務器中有較好的表現。
Nginx專為性能優化設計與開發,性能是其最重要的考量,現實上非常注重效率,能經受高負載的考驗,有報告表明能支持高達50000個并發的連接數。
2、正向代理和反向代理
2.1、正向代理
正向代理最大的特點是客戶端非常明確要訪問的服務器地址;服務器只清楚請求來自哪個代理服務器,而不清楚來自哪個具體的客戶端;正向代理模式屏蔽或者隱藏了真實客戶端信息。
正向代理的用途:
- 訪問原來無法訪問的資源,如google
- 可以做緩存,加速訪問資源
- 對客戶端訪問授權,上網進行認證
- 代理可以記錄用戶訪問記錄(上網行為管理),對外隱藏用戶信息
2.2、反向代理
反向代理,其實客戶端對代理是無感知的,因為客戶端不需要任何配置就是可以訪問。我們只需要將請求發送到反向代理服務器上,有反向代理服務器去選擇目標服務器獲取數據后,再返回給客戶端,此時反向代理服務器和目標服務器對外就是一個服務器,暴漏的是代理服務器地址,隱藏了真實服務器地址。
反向代理的作用:
- 保證內網的安全,阻止web攻擊,大型網站,通常將反向代理作為公網訪問地址,Web服務器是內網
- 負載均衡,通過反向代理服務器來優化網站的負載
2.3正向代理與反向代理的區別
本質上沒什么區別,正向代理是用戶端的,反向代理是服務器端的,角度不同而已。
3、負載均衡
Load balancing,即負載均衡,是一種計算機技術,用來在多個計算機(計算機集群)、網絡連接、CPU、磁盤驅動器或其他資源中分配負載,以達到最優化資源使用、最大化吞吐率、最小化響應時間、同時避免過載的目的。
為了提升網站的服務能力,網站可以采用集群部署,就像話劇院有多個入口一樣。這時候,就需要一個協調者,來均衡的分配這些用戶的請求,可以讓用戶的可以均勻的分派到不同的服務器上。
單個服務器解決不了,我們增加服務器的數量,然后將請求分別分發到各個服務器上,將原來請求集中到單個服務器上的情況改為將請求分發到多個服務器上,降幅在分發到不同的服務器,也就是我們所說的負載均衡。
4、動靜分離
為了加快網站的解析速度,可以把動態界面和靜態界面由不同的服務器來解析,加快解析速度。降低原來服務器的壓力。