天天看點

什麼是Nginx?

什麼是Nginx?

什麼是nginx?

nginx是一款輕量級的Web 伺服器 、反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器。主要有反

向代理,負載均衡的功能。

Nginx 是由俄羅斯人 Igor Sysoev 設計開發的,開發工作從2002 年開始,第一次公開釋出在 2004 年

10 月 4 日。

官方網站為:http://nginx.org/ 。它是一款免費開源的高性能 HTTP 代理伺服器及反向代理伺服器

(Reverse Proxy)産品,同時它還可以提供 IMAP/POP3 郵件代理服務等功能。它高并發性能很好,官

方測試能夠支撐 5 萬的并發量;運作時記憶體和 CPU 占用率低,配置簡單,容易上手,而且運作非常穩

定。

​​http://tengine.taobao.org/:淘寶網發起。​​

什麼是Nginx?
2、Nginx的常用功能

其實 Nginx 的功能特别多,這裡我隻介紹幾個常用的功能,具體的大家可以參考官網介紹。

①、反向代理

這是 Nginx 伺服器作為 WEB 伺服器的主要功能之一,用戶端向伺服器發送請求時,會首先經過

Nginx 伺服器,由伺服器将請求分發到相應的 WEB 伺服器。正向代理是代理用戶端,而反向代理則是代

理伺服器,Nginx 在提供反向代理服務方面,通過使用正規表達式進行相關配置,采取不同的轉發策

略,配置相當靈活,而且在配置後端轉發請求時,完全不用關心網絡環境如何,可以指定任意的IP位址

和端口号,或其他類型的連接配接、請求等。

②、負載均衡

這也是 Nginx 最常用的功能之一,負載均衡,一方面是将單一的重負載分擔到多個網絡節點上做并

行處理,每個節點處理結束後将結果彙總傳回給使用者,這樣可以大幅度提高網絡系統的處理能力;另一

方面将大量的前端并發請求或資料流量分擔到多個後端網絡節點分别處理,這樣可以有效減少前端使用者

等待相應的時間。而 Nginx 負載均衡都是屬于後一方面,主要是對大量前端通路或流量進行分流,已保

證前端使用者通路效率,并可以減少後端伺服器處理壓力。

③、Web 緩存

在很多優秀的網站中,Nginx 可以作為前置緩存伺服器,它被用于緩存前端請求,進而提高 Web服

務器的性能。Nginx 會對使用者已經通路過的内容在伺服器本地建立副本,這樣在一段時間内再次通路該

資料,就不需要通過 Nginx 伺服器向後端送出請求。減輕網絡擁堵,減小資料傳輸延時,提高使用者通路

速度。

3、什是反向代理?

反向代理和正向代理的差別就是:正向代理代理用戶端,反向代理代理伺服器。

反向代理,其實用戶端對代理是無感覺的,因為用戶端不需要任何配置就可以通路,我們隻需要将

請求發送到反向代理伺服器,由反向代理伺服器去選擇目标伺服器擷取資料後,在傳回給用戶端,此時

反向代理伺服器和目标伺服器對外就是一個伺服器,暴露的是代理伺服器位址,隐藏了真實伺服器IP地

址。

什麼是Nginx?
什麼是Nginx?

了解這兩種代理的關鍵在于代理伺服器所代理的對象是什麼,正向代理代理的是用戶端,我們需要在客

戶端進行一些代理的設定。而反向代理代理的是伺服器,作為用戶端的我們是無法感覺到伺服器的真實

存在的。

總結起來還是一句話:正向代理代理用戶端,反向代理代理伺服器。

4、什麼是負載均衡?

将伺服器接收到的請求按照規則分發的過程。

weight輪詢(預設):接收到的請求按照順序逐一配置設定到不同的後端伺服器,即使在使用過程中,

某一台後端伺服器當機,nginx會自動将該伺服器剔除出隊列,請求受理情況不會受到任何影響。

這種方式下,可以給不同的後端伺服器設定一個權重值(weight),用于調整不同的伺服器上請

求的配置設定率;權重資料越大,被配置設定到請求的幾率越大;該權重值,主要是針對實際工作環境中不

同的後端伺服器硬體配置進行調整的。

ip_hash: 每個請求按照發起用戶端的ip的hash結果進行比對,這樣的算法下一個固定ip位址的客

戶端總會通路到同一個後端伺服器,這也在一定程度上解決了叢集部署環境下session共享的問

題。

fair: 智能調整排程算法,動态的根據後端伺服器的請求處理到響應的時間進行均衡配置設定,響應時

間短處理效率高的伺服器配置設定到請求的機率高,響應時間長處理效率低的伺服器配置設定到的請求少;

結合了前兩者的優點的一種排程算法。但是需要注意的是nginx預設不支援fair算法,如果要使用

這種排程算法,請安裝upstream_fair子產品

url_hash: 按照通路的url的hash結果配置設定請求,每個請求的url會指向後端固定的某個伺服器,可

繼續閱讀