【Nginx入門之巨集觀總結】

我是太陽啦啦啦發表於2018-01-30

前言:

專案中用到了Nginx,對應專案的Nginx瞭解的不是很多,結合公司的專案,在對Nginx系統的學習一下,本篇文章站在巨集觀的角度,對Nginx進行總結.

核心:

是什麼?

無論學習什麼知識,在i+1的基礎上,我們的學習效率會高很多,提到Nginx,可能有夥伴不太熟悉,但Tomcat/IIS,我們們大家都是比較熟悉的吧!它們都是web伺服器.

首先來說說Tomcat,Tomcat面向java語言,但是先天就是重量級的Web伺服器,而IIS只能在Windows作業系統執行Windows作為伺服器在穩定性與其他一些效能上都不如UNIX作業系統.

現在我們們來說說Nginx,Nginx和Lighttpd一樣,都是輕量級/高效能的Web伺服器.

背景

來自俄羅斯的Igor Sysoev在為Ranbler Media工作期間,使用C語言開發了Nginx,後來將程式碼開源,被廣泛應用到大流量的網站上,如騰訊/新浪/網易等訪問量巨大的網站,2011年7月,Nginx正式成立公司,立足於提供商業級Web伺服器.

為什麼選擇Nginx?

無論在專案中選擇了哪種技術,都是有目的,下面我們們來說說Nginx的優點:

更快

1.正常情況,單次請求會得到更快的響應

2.高峰期,Nginx可以比其他Web伺服器更快的響應

高擴充套件性

Nginx完全是由多個不同功能/不同層次/不同型別且耦合度極地的模組組成.修復或升級某一模組,可以專注於模組自身,並且http模組中還設計了http過濾模組,對請求結果再處理,無論是官方釋出的模組還是第三方模組都是嵌入到二進位制檔案中執行的,可以開發符合自己業務特性的定製模組.

高可靠性

Nginx的高可靠性來自於核心框架程式碼的優秀設計/模組設計的簡單性,另外官方常用的模組都非常穩定,每個worker進行相對獨立,master程式在1個worker程式出錯時可以快速"拉起"新的worker子程式.

低記憶體消耗

一般情況下,1萬個非活躍的HTTP Keep-Alive連線在Nginx中僅消耗2.5MB的記憶體,這是Nginx支援高併發連線的基礎.

單擊支援10萬以上的併發連線

Nginx支援的併發連線上限取決於記憶體,10萬遠未封頂.同時,能夠及時處理更多的併發請求和業務特點也是緊密聯絡的

熱部署

可以熱部署的原因:master管理程式與worker工作程式的分離設計,不停止服務的情況下,升級Nginx的可執行檔案,更新配置項/更新日誌檔案等功能.

最自由的BSD許可協議

BSD許可協議不只是允許使用者免費試用Nginx,還允許用在自己的專案中直接使用或修改Nginx原始碼,這是Nginx可以快速發展的強大動力.

Nginx應用

這裡闡述的是作為Web伺服器與反向代理伺服器的Nginx


反向代理:

反向代理是指代理伺服器來接受Internet上的連線請求,然後將請求轉發給內部網路中的上游伺服器,並從上游伺服器上得到的結果返回給Internet上請求連線的客戶端,此時代理伺服器對外的表現就是一個web伺服器.

Web伺服器

作為前端的伺服器直接向客戶端婷靜態檔案服務.

作為反向代理的請求流程:


總結

本篇部落格就總結到這裡了,下篇部落格持續更新!感謝讀者的閱讀.

相關文章