女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Nginx架構(gòu)介紹 Nginx服務(wù)器模型分析

西西 ? 來源:51CTO ? 2019-01-10 16:32 ? 次閱讀

Nginx是一款免費的、開源的、高性能、模塊化、輕量級的HTTP服務(wù)器、反向代理服務(wù)器以及電子郵件(IMAP/POP3)代理服務(wù)器。

很多大型的網(wǎng)站都使用Nginx,如:百度、京東、新浪、網(wǎng)易、騰訊、淘寶等。

1.Nginx的整體架構(gòu)簡介

Nginx架構(gòu)介紹 Nginx服務(wù)器模型分析

1)Nginx啟動后,會產(chǎn)生一個主進程,主進程執(zhí)行一系列的工作后會產(chǎn)生一個或者多個工作進程;

2)在客戶端請求動態(tài)站點的過程中,Nginx服務(wù)器還涉及和后端服務(wù)器的通信。Nginx將接收到的Web請求通過代理轉(zhuǎn)發(fā)到后端服務(wù)器,由后端服務(wù)器進行數(shù)據(jù)處理和組織;

3)Nginx為了提高對請求的響應(yīng)效率,降低網(wǎng)絡(luò)壓力,采用了緩存機制,將歷史應(yīng)答數(shù)據(jù)緩存到本地。保障對緩存文件的快速訪問;

2. Nginx的模塊化

高度模塊化的設(shè)計是 Nginx 的架構(gòu)基礎(chǔ)。Nginx嚴格遵循“高內(nèi)聚,低耦合”的原則,將服務(wù)器設(shè)計為多個模塊,每個模塊就是一個獨立的功能模塊,只負責自身的功能。

Nginx架構(gòu)介紹 Nginx服務(wù)器模型分析

這5個模塊從上到下重要性依次遞減。

(1)核心模塊

核心模塊是Nginx服務(wù)器正常運行必不可少的模塊,如同操作系統(tǒng)的內(nèi)核。它提供了Nginx最基本的核心服務(wù)。像進程管理、權(quán)限控制、錯誤日志記錄等;

(2)標準HTTP模塊

標準HTTP模塊支持標準的HTTP的功能;

(3)可選HTTP模塊

可選HTTP模塊主要用于擴展標準的HTTP功能,讓Nginx能處理一些特殊的服務(wù);

(4)郵件服務(wù)模塊

郵件服務(wù)模塊主要用于支持Nginx的郵件服務(wù);

(5)第三方模塊

第三方模塊是為了擴展Nginx服務(wù)器應(yīng)用,完成開發(fā)者想要的功能;

3.Nginx的Web請求處理機制

從架構(gòu)設(shè)計上說,Nginx服務(wù)器是與眾不同的。其一在于它的模塊化設(shè)計;其二也是更重要的一點在于它對與客戶端請求的處理機制上。 Nginx請求處理機制結(jié)合多進程機制和異步非阻塞機制。

1)多進程

多進程方式指服務(wù)器每當收到一個客戶端請求時就由服務(wù)器主進程生成一個子進程出來和客戶端建立連接進行交互,直到連接斷開,該子進程就結(jié)束了。多進程方式的優(yōu)點是設(shè)計簡單,各個子進程相對獨立,處理客戶端請求時彼此不受干擾;缺點是操作系統(tǒng)生成一個子進程需要進行內(nèi)存復(fù)制等操作,在資源和時間上會產(chǎn)生一定的開銷;當有大量請求時,會導(dǎo)致系統(tǒng)性能下降;

2)異步非阻塞

發(fā)送方向接收方發(fā)送請求后,不用等待響應(yīng),可以繼續(xù)其他工作;接收方處理請求時進行的IO操作如果不能馬上得到結(jié)果,也不必等待,而是馬上返回去去做其他事情。當IO操作完成以后,將完成狀態(tài)和結(jié)果通知接收方,接收方再響應(yīng)發(fā)送方。

4. Nginx服務(wù)器的事件驅(qū)動模型

從上面我們可以知道,Nginx服務(wù)器的工作進程調(diào)用IO后,就取進行其他工作了;當IO調(diào)用返回后,會主動通知工作進程。像select/poll/epoll等這樣的系統(tǒng)調(diào)用就是用來支持這種解決方案的。這些系統(tǒng)調(diào)用也常被稱為事件驅(qū)動模型,他們提供了一種機制就只讓進程同時處理多個并發(fā)請求,不用關(guān)心IO調(diào)用的具體狀態(tài)。IO調(diào)用完全由事件驅(qū)動模型來管理。

Nginx架構(gòu)介紹 Nginx服務(wù)器模型分析

如上圖所示,Nginx的事件驅(qū)動模型由事件收集器、事件發(fā)送器和事件處理器三部分基本單元組成。

select,poll,epoll都是IO多路復(fù)用的機制。I/O多路復(fù)用就是通過一種機制,一個進程可以監(jiān)視多個描述符,一旦某個描述符就緒(一般是讀就緒或者寫就緒),能夠通知程序進行相應(yīng)的讀寫操作。select,poll,epoll本質(zhì)上都是同步I/O,因為他們都需要在讀寫事件就緒后自己負責進行讀寫,也就是說這個讀寫過程是阻塞的。

5. Nginx服務(wù)器Master-Worker進程處理模型

Nginx架構(gòu)介紹 Nginx服務(wù)器模型分析

Nginx服務(wù)器在使用Master-Worker模型時,會涉及到主進程和工作進程的交互和工作進程之間的交互。這兩類交互都依賴于管道機制。

Master-Worker交互

這條管道與普通的管道不同,它是由主進程指向工作進程的單向管道,包含主進程向工作進程發(fā)出的指令,工作進程ID等;同時主進程與外界通過信號通信;

Worker-Worker交互

這種交互是和Master-Worker交互是基本一致的,但是會通過主進程。工作進程之間是相互隔離的,所以當工作進程W1需要向工作進程W2發(fā)指令時,首先找到W2的進程ID,然后將正確的指令寫入指向W2的通道。W2收到信號采取相應(yīng)的措施。

通過這篇文章,我們對Nginx服務(wù)器的整體架構(gòu)有了一個整體的認識。另外推薦大家多看看Nginx的源碼,以便能更好地領(lǐng)悟 Nginx的設(shè)計思想。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9681

    瀏覽量

    87260
  • nginx
    +關(guān)注

    關(guān)注

    0

    文章

    163

    瀏覽量

    12487
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    Linux上Nginx獲得最佳性能的8種方法

    NGINX 是一種流行的、免費的開源 Web 服務(wù)器。默認的 NGINX 配置足以讓 Web 服務(wù)器正常工作。 但是,如果您想充分利用 NGINX
    發(fā)表于 01-16 09:51 ?629次閱讀

    Linux開發(fā)_CentOS7.4服務(wù)器搭建NFS、NGINX服務(wù)器,安裝ffmpeg、Qt環(huán)境

    在CentOS7.4服務(wù)器版本的環(huán)境下搭建NFS服務(wù)器、安裝ffmpeg、安裝nginx服務(wù)器、部署Qt編譯環(huán)境。
    的頭像 發(fā)表于 07-14 13:45 ?2065次閱讀
    Linux開發(fā)_CentOS7.4<b class='flag-5'>服務(wù)器</b>搭建NFS、<b class='flag-5'>NGINX</b><b class='flag-5'>服務(wù)器</b>,安裝ffmpeg、Qt環(huán)境

    【NanoPi2試用體驗】高級(一):基于nginx的web服務(wù)器

    /nginx reload在瀏覽中打開地址192.168.1.222:8080服務(wù)器正常!征文活動,多多捧場:https://bbs.elecfans.com/jishu_531047_1_1.html
    發(fā)表于 01-03 11:00

    NanoPi NEO - 可靠的Nginx 網(wǎng)絡(luò)服務(wù)器

    服務(wù)器部署,并刪除匿名用戶和測試數(shù)據(jù)庫。#mysql_secure_installation根據(jù)提示進行選擇:3. 安裝nginx如果你之前已經(jīng)安裝了Apache2,則需要先移除apache2
    發(fā)表于 06-20 15:43

    Nginx的主要功能

    大數(shù)據(jù)基礎(chǔ)——Nginx服務(wù)器基本配置
    發(fā)表于 05-31 07:57

    Nginx的安裝和啟動服務(wù)

    Mac上搭建直播服務(wù)器 Nginx+rtmp
    發(fā)表于 08-05 14:54

    Nginx服務(wù)器的搭建步驟

    ①搭建Nginx服務(wù)器②SSL加密網(wǎng)站③基于域名虛擬主機
    發(fā)表于 04-07 16:20

    構(gòu)建實戰(zhàn):Nginx+IIS構(gòu)筑Web服務(wù)器集群負載均衡

    構(gòu)建實戰(zhàn):Nginx+IIS構(gòu)筑Web服務(wù)器集群負載均衡
    發(fā)表于 09-05 10:56 ?4次下載
    構(gòu)建實戰(zhàn):<b class='flag-5'>Nginx</b>+IIS構(gòu)筑Web<b class='flag-5'>服務(wù)器</b>集群負載均衡

    一文知道Nginx服務(wù)器的緩存原理和機制

    Nginx服務(wù)器的緩存原理,是在學習過程中比較重要的一個知識點,學習通透之后,對于自己的能力會有不小的提升——而且提升不只限于nginx一方面,技術(shù)理論一通百通,對于理解其他內(nèi)容也會有很大幫助。
    的頭像 發(fā)表于 10-05 09:01 ?2595次閱讀
    一文知道<b class='flag-5'>Nginx</b><b class='flag-5'>服務(wù)器</b>的緩存原理和機制

    詳解Nginx高性能的HTTP和反向代理服務(wù)器

    Nginx 是一個高性能的 HTTP 和反向代理服務(wù)器,特點是占用內(nèi)存少,并發(fā)能力強,事實上 Nginx 的并發(fā)能力確實在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好。
    的頭像 發(fā)表于 03-16 11:23 ?2677次閱讀

    【技術(shù)分享】如何在嵌入式Linux平臺上使用Nginx搭建RTMP流媒體服務(wù)器

    RTMP作為目前主流的流媒體傳輸協(xié)議,廣泛應(yīng)用于音視頻領(lǐng)域。那么我們?nèi)绾慰焖僭谇度胧桨遄由洗罱ㄆ鹱约旱膔tmp流媒體服務(wù)器?本篇文章將帶大家實踐一下。 ?? 概述 Nginx是一個以高效穩(wěn)定著稱
    的頭像 發(fā)表于 01-05 15:15 ?813次閱讀

    【技術(shù)分享】如何在嵌入式Linux平臺上使用Nginx搭建RTMP流媒體服務(wù)器

    RTMP作為目前主流的流媒體傳輸協(xié)議,廣泛應(yīng)用于音視頻領(lǐng)域。那么我們?nèi)绾慰焖僭谇度胧桨遄由洗罱ㄆ鹱约旱膔tmp流媒體服務(wù)器?本篇文章將帶大家實踐一下。概述Nginx是一個以高效穩(wěn)定著稱的高性能
    的頭像 發(fā)表于 01-13 09:27 ?1623次閱讀
    【技術(shù)分享】如何在嵌入式Linux平臺上使用<b class='flag-5'>Nginx</b>搭建RTMP流媒體<b class='flag-5'>服務(wù)器</b>?

    Apache服務(wù)器Nginx服務(wù)器

    Apache和Nginx都是常見的開源Web服務(wù)器軟件,它們用于處理HTTP請求并提供網(wǎng)站和應(yīng)用程序的服務(wù)。下面是對Apache和Nginx的一些基本特點的比較: 一、Apache H
    的頭像 發(fā)表于 01-22 16:48 ?768次閱讀

    nginx負載均衡配置介紹

    目錄 nginx負載均衡 nginx負載均衡介紹 反向代理與負載均衡 nginx負載均衡配置 Keepalived高可用nginx負載均衡器
    的頭像 發(fā)表于 11-10 13:39 ?630次閱讀
    <b class='flag-5'>nginx</b>負載均衡配置<b class='flag-5'>介紹</b>

    nginx隱藏版本號與WEB服務(wù)器信息

    nginx不僅可以隱藏版本信息,還支持自定義web服務(wù)器信息 先看看最終的隱藏結(jié)果吧 具體怎么實現(xiàn)呢,其實也很簡單,請往下看 1 官網(wǎng)下載最新穩(wěn)定版 wget http://nginx
    的頭像 發(fā)表于 11-22 10:25 ?515次閱讀
    <b class='flag-5'>nginx</b>隱藏版本號與WEB<b class='flag-5'>服務(wù)器</b>信息