nginx常見的應用場景如下圖所示:
曾經的web開發並不是完全的前後端分離,最明顯的例子就是jsp,基本是前後端不分離,直到後來spring生態體系和前端框架的發展,web應用程式成了單純的提**用介面服務的程式,因此靜態資源就沒必要交給應用伺服器去處理,而是交給nginx
nginx的快取加速和負載均衡,極大提高了整體系統的併發能力,nginx的併發相對於應用伺服器要強大太多
nginx裡面提供了資料庫服務、快取、應用服務相關api,模組化設計。比如資料庫伺服器的併發效能本來就遠高於應用伺服器,如果直接讓應用伺服器去運算元據庫的話無疑是降低了系統的效能,於是nginx提供了資料庫訪問的api,提公升系統整體效能
現在越來越多的網路裝置接入,尤其是在我們國家這樣的人口大國,每年雙十一這樣的併發量不是單純的應用伺服器能夠撐得住的。雖然計算機硬體在不斷公升級,但是這種問題就目前來看從硬體的角度發生的改變是微乎其微的,早期的apache伺服器維護乙個連線就需要乙個程序來維護,這樣做的代價就是從硬體的角度就已經限制了伺服器的併發。
即使從8核處理器換到16核心處理器併發效能也不會得到成倍的提公升,因為作業系統和軟體沒做好服務和多核架構的準備!
下面這張圖是最近幾年伺服器市場份額變化圖:
雖然現在排名第二,但是在一些追求長期穩定的服務中通常不會更換伺服器,就比如學校的教務**,asp.net實現的,雖然每次網上選課系統都會崩盤,但是學校為了穩定性不會輕易更換服務架構的。所以表面看起來apache的使用高於nginx的,但是往往新增的伺服器都會使用nginx
高併發需要條件就是每個鏈結需要更小的記憶體,吃更少的cpu資源。nginx做到了,從上圖中可以看到,在併發量很低的時候nginx的效能其實還不如其他的伺服器,但是nginx在高併發量的時候,效能仍然很穩定,而其他的伺服器的效能會嚴重下降,所以nginx的高併發效能成為了人們選擇nginx的理由
nginx採取了分階段資源分配技術,使得它的cpu與記憶體佔用率非常低。nginx官方表示保持10000個沒有活動的連線,它只佔2.5m記憶體
nginx與其他伺服器的對比
從這個圖上呢也可以看出來nginx的版本迭代情況,綠色的線表示nginx的bug修復情況,bug越來越少也同樣是說明了nginx越來越穩定了,2023年nginx開始支援windows作業系統,2023年才成立nginx的商業公司…...
簡單認識 Nginx
nginx 是一款高效能的 web 伺服器軟體,主要用於提供網上資訊瀏覽服務,為高併發 的應用場景而設計,可以部署在 linux macos 和 windows 等作業系統中,它的優點包括效能高 穩定性好 結構模組化 配置簡單以及資源消耗非常低等。擁有 https 訪問 gzip 壓縮 虛擬主機和 ...
nginx日誌簡單認識
我們觀察 nginx 的server段,可以看到如下類似資訊 access log logs host.access.log main 這說明 該 server,它的訪問日誌的檔案是 logs host.access.log 使用的格式 main 格式.除了main格式,你可以自定義其他格式.mai...
Nginx認識及配置
是乙個高效能的反向 伺服器 正向 的是客戶端 反向 的是服務端 靜態web伺服器 jsp servlet伺服器 tomcat 解壓tar zxvf nginx 1.14.2.tar.gz configure prefix yum install pcre devel yum install zlib...