第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為什么選擇 Nginx

從上一節(jié)中,我們可以看到,Nginx 已經(jīng)是 Web 服務(wù)器市場(chǎng)的新一哥。市場(chǎng)的選擇總歸是沒錯(cuò)的,那么市場(chǎng)選擇它的理由又有哪些呢?

1. 高性能、高穩(wěn)定、低資源消耗

Nginx 的進(jìn)程模型采用了 Master/Workers 進(jìn)程池的機(jī)制,即通常情況下,Nginx 會(huì)啟動(dòng)一個(gè) Master 進(jìn)程(當(dāng)然,也可以無 master 進(jìn)程)和多個(gè) Worker 進(jìn)程對(duì)外提供服務(wù)。Master 進(jìn)程是監(jiān)控進(jìn)程,本身并不處理具體的 TCP 和 HTTP 請(qǐng)求,只負(fù)責(zé)接受 UNIX 信號(hào),管理 Worker 進(jìn)程,類似于工地的包工頭。

Worker 進(jìn)程是比較累的,負(fù)責(zé)處理客戶端的連接請(qǐng)求,它充分利用了 Linux 系統(tǒng)中的 epoll、kqueue 等機(jī)制,高效處理 TCP 和 HTTP 請(qǐng)求,利用這些特點(diǎn),Nginx 充分挖掘了服務(wù)器的潛能,讓服務(wù)器更快響應(yīng)用戶請(qǐng)求。

一般情況下,10000 個(gè)非活躍的 HTTP Keep-Alive 連接在 Nginx 中僅僅消耗 2.5M 內(nèi)存,這是 Nginx 支持高并發(fā)連接的基礎(chǔ),體現(xiàn)了 Nginx 高性能的特點(diǎn)。另外,由于官方提供的模塊都非常穩(wěn)定,每個(gè) Worker 進(jìn)程都相對(duì)獨(dú)立,Woker 進(jìn)程出錯(cuò)時(shí),Master 進(jìn)程會(huì)立馬感知到并快速拉起新的 Worker 子進(jìn)程不間斷提供服務(wù),保證服務(wù)的穩(wěn)定性。

nginx的進(jìn)程模型
圖片描述

2. 高可擴(kuò)展性

Nginx 的架構(gòu)設(shè)計(jì)是非常優(yōu)秀的,極具擴(kuò)展性,它完全由多個(gè)不同功能、不同層次、不同類型且耦合度極低的模塊組成。

另外,我們還可以在官方提供的模塊上進(jìn)行二次開發(fā),例如 HTTP 模塊,其中設(shè)計(jì)了 HTTP 過濾器模塊,這樣我們開發(fā)一個(gè)新的 HTTP 模塊時(shí),除了使用諸如 HTTP 核心模塊、events 模塊、log 模塊等不同層次的模塊,還可以原封不動(dòng)地復(fù)用大量已有的 HTTP 過濾器模塊。

這種低耦合度的優(yōu)秀設(shè)計(jì),造就了 Nginx 龐大的第三方模塊,而且 Nginx 的模塊都是嵌入到二進(jìn)制的文件中執(zhí)行的,這樣使得第三方模塊同樣具備極其優(yōu)秀的性能,充分利用 Nginx 的高并發(fā)特性,因此許多高流量的網(wǎng)站都會(huì)在 Nginx 基礎(chǔ)上開發(fā)符合自己業(yè)務(wù)特性的定制模塊,而且開發(fā)成本低,效果好。

另外,對(duì)于中小型企業(yè)來說,Nginx 開箱即用,其本身的高并發(fā)能力能滿足企業(yè)的大部分業(yè)務(wù),因此 Nginx 在絕大部分互聯(lián)網(wǎng)企業(yè)中應(yīng)用非常廣泛。

3. 熱部署

支持熱部署功能是 Nginx 的一個(gè)特色,許多大型門戶網(wǎng)站要求 24 小時(shí)不間斷提供服務(wù),一旦出現(xiàn)服務(wù)停止,容易造成用戶投訴和用戶流失。Nginx 由于其管理進(jìn)程和 Worker 進(jìn)程的分離設(shè)計(jì),使得其能提供熱部署功能,滿足大型站點(diǎn)在 7x24 小時(shí)不間斷服務(wù)的前提下升級(jí) Nginx。

但要注意的是,Nginx 并不支持在不停止服務(wù)的情況下就更新配置、更換日志文件等功能。Nginx 的熱部署實(shí)現(xiàn)原理是,在不停止老進(jìn)程的前提下,終止其連接請(qǐng)求,并啟動(dòng)新的 Worker 進(jìn)程處理新進(jìn)來的連接請(qǐng)求,再慢慢終止老的 Worker 進(jìn)程,實(shí)現(xiàn)新老交替。

4. 開源和免費(fèi)

Nginx 和老大哥 Apache 一樣開源且免費(fèi)。在如今的時(shí)代,開源才能有力地成長(zhǎng),免費(fèi)才能讓更多的企業(yè)和個(gè)人開發(fā)者使用。 當(dāng)然 Nginx 也有它的商業(yè)版本 Nginx plus,它有著更為豐富的功能和應(yīng)用場(chǎng)景。然而免費(fèi)版本的功能已經(jīng)足夠強(qiáng)大,加上第三方層出不窮的插件模塊,幾乎能實(shí)現(xiàn)各種業(yè)務(wù)功能,再加上配合第三方的語言集成(perl、lua等),對(duì)于絕大多數(shù)企業(yè)和個(gè)人來說已經(jīng)完全足夠。

當(dāng)然,Nginx 的優(yōu)點(diǎn)絕對(duì)不止于此。它最核心地功能是:在支持高并發(fā)請(qǐng)求的同時(shí)保持高效的服務(wù)。而這一點(diǎn)正是廣大開發(fā)者,也是各大企業(yè)迫切需要滿足的需求,以應(yīng)對(duì)日益龐大的國(guó)內(nèi)互聯(lián)網(wǎng)用戶群體。