Nginx初階——認識Nginx

Nginx的應用場景

Nginx常見的應用場景以下圖所示:
前端

靜態資源服務

曾經的Web開發並非徹底的先後端分離,最明顯的例子就是JSP,基本是先後端不分離,直到後來Spring生態體系和前端框架的發展,Web應用程序成了單純的提供應用接口服務的程序,所以靜態資源就不必交給應用服務器去處理,而是交給Nginxnginx

反響代理服務

Nginx的緩存加速和負載均衡,極大提升了總體系統的併發能力,Nginx的併發相對於應用服務器要強大太多數據庫

API服務

Nginx裏面提供了數據庫服務、緩存、應用服務相關API,模塊化設計。好比數據庫服務器的併發性能原本就遠高於應用服務器,若是直接讓應用服務器去操做數據庫的話無疑是下降了系統的性能,因而Nginx提供了數據庫訪問的API,提高系統總體性能後端

Nginx出現的歷史背景

如今愈來愈多的網絡設備接入,尤爲是在咱們國家這樣的人口大國,每一年雙十一這樣的併發量不是單純的應用服務器可以撐得住的。雖然計算機硬件在不斷升級,可是這種問題就目前來看從硬件的角度發生的改變是微乎其微的,早期的Apache服務器維護一個鏈接就須要一個進程來維護,這樣作的代價就是從硬件的角度就已經限制了服務器的併發。
即便從8核處理器換到16核心處理器併發性能也不會獲得成倍的提高,由於操做系統和軟件沒作好服務和多核架構的準備!api

下面這張圖是最近幾年服務器市場份額變化圖:

雖然如今排名第二,可是在一些追求長期穩定的服務中一般不會更換服務器,就好比學校的教務網站,ASP.NET實現的,雖然每次網上選課系統都會崩盤,可是學校爲了穩定性不會輕易更換服務架構的。因此表面看起來Apache的使用高於Nginx的,可是每每新增的服務器都會使用Nginx緩存

Nginx的優勢

高併發須要條件就是每一個連接須要更小的內存,吃更少的CPU資源。Nginx作到了,從上圖中能夠看到,在併發量很低的時候Nginx的性能其實還不如其餘的服務器,可是Nginx在高併發量的時候,性能仍然很穩定,而其餘的服務器的性能會嚴重降低,因此Nginx的高併發性能成爲了人們選擇Nginx的理由前端框架

Nginx採起了分階段資源分配技術,使得它的CPU與內存佔用率很是低。Nginx官方表示保持10000個沒有活動的鏈接,它只佔2.5M內存服務器

Nginx與其餘服務器的對比
網絡

Nginx的組成

Nginx版本發佈

從這個圖上呢也能夠看出來Nginx的版本迭代狀況,綠色的線表示Nginx的Bug修復狀況,Bug愈來愈少也一樣是說明了Nginx愈來愈穩定了,2009年Nginx開始支持Windows操做系統,2011年才成立Nginx的商業公司…...架構

Nginx版本選擇

  • 免費開源版本 nginx.org
  • 商業版 nginx.com
  • 阿里巴巴的Tengine
  • 免費版OpenResty
  • 商業版OpenResty
相關文章
相關標籤/搜索