色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

Nginx架構介紹 Nginx服務器模型分析

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

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

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

1.Nginx的整體架構簡介

Nginx架構介紹 Nginx服務器模型分析

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

2)在客戶端請求動態站點的過程中,Nginx服務器還涉及和后端服務器的通信。Nginx將接收到的Web請求通過代理轉發到后端服務器,由后端服務器進行數據處理和組織;

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

2. Nginx的模塊化

高度模塊化的設計是 Nginx 的架構基礎。Nginx嚴格遵循“高內聚,低耦合”的原則,將服務器設計為多個模塊,每個模塊就是一個獨立的功能模塊,只負責自身的功能。

Nginx架構介紹 Nginx服務器模型分析

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

(1)核心模塊

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

(2)標準HTTP模塊

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

(3)可選HTTP模塊

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

(4)郵件服務模塊

郵件服務模塊主要用于支持Nginx的郵件服務;

(5)第三方模塊

第三方模塊是為了擴展Nginx服務器應用,完成開發者想要的功能;

3.Nginx的Web請求處理機制

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

1)多進程

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

2)異步非阻塞

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

4. Nginx服務器的事件驅動模型

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

Nginx架構介紹 Nginx服務器模型分析

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

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

5. Nginx服務器Master-Worker進程處理模型

Nginx架構介紹 Nginx服務器模型分析

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

Master-Worker交互

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

Worker-Worker交互

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

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

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

    關注

    12

    文章

    9425

    瀏覽量

    86495
  • nginx
    +關注

    關注

    0

    文章

    157

    瀏覽量

    12301
收藏 人收藏

    評論

    相關推薦

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

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

    Linux開發_CentOS7.4服務器搭建NFS、NGINX服務器,安裝ffmpeg、Qt環境

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

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

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

    NanoPi NEO - 可靠的Nginx 網絡服務器

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

    Nginx的主要功能

    大數據基礎——Nginx服務器基本配置
    發表于 05-31 07:57

    Nginx的安裝和啟動服務

    Mac上搭建直播服務器 Nginx+rtmp
    發表于 08-05 14:54

    Nginx服務器的搭建步驟

    ①搭建Nginx服務器②SSL加密網站③基于域名虛擬主機
    發表于 04-07 16:20

    構建實戰:Nginx+IIS構筑Web服務器集群負載均衡

    構建實戰:Nginx+IIS構筑Web服務器集群負載均衡
    發表于 09-05 10:56 ?4次下載
    構建實戰:<b class='flag-5'>Nginx</b>+IIS構筑Web<b class='flag-5'>服務器</b>集群負載均衡

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

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

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

    Nginx 是一個高性能的 HTTP 和反向代理服務器,特點是占用內存少,并發能力強,事實上 Nginx 的并發能力確實在同類型的網頁服務器中表現較好。
    的頭像 發表于 03-16 11:23 ?2581次閱讀

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

    RTMP作為目前主流的流媒體傳輸協議,廣泛應用于音視頻領域。那么我們如何快速在嵌入式板子上搭建起自己的rtmp流媒體服務器?本篇文章將帶大家實踐一下。 ?? 概述 Nginx是一個以高效穩定著稱
    的頭像 發表于 01-05 15:15 ?732次閱讀

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

    RTMP作為目前主流的流媒體傳輸協議,廣泛應用于音視頻領域。那么我們如何快速在嵌入式板子上搭建起自己的rtmp流媒體服務器?本篇文章將帶大家實踐一下。概述Nginx是一個以高效穩定著稱的高性能
    的頭像 發表于 01-13 09:27 ?1431次閱讀
    【技術分享】如何在嵌入式Linux平臺上使用<b class='flag-5'>Nginx</b>搭建RTMP流媒體<b class='flag-5'>服務器</b>?

    Apache服務器Nginx服務器

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

    nginx負載均衡配置介紹

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

    nginx隱藏版本號與WEB服務器信息

    nginx不僅可以隱藏版本信息,還支持自定義web服務器信息 先看看最終的隱藏結果吧 具體怎么實現呢,其實也很簡單,請往下看 1 官網下載最新穩定版 wget http://nginx
    的頭像 發表于 11-22 10:25 ?304次閱讀
    <b class='flag-5'>nginx</b>隱藏版本號與WEB<b class='flag-5'>服務器</b>信息
    主站蜘蛛池模板: 黑人 尺寸 强行害怕 痛哭 | 无限资源日本2019版免费 | 好色美女小雅 | 美美哒免费影视8 | 再插深点嗯好大好爽 | 国产成人无码一区AV在线观看 | 五花大绑esebdsm国产 | 免费可以看污动画软件 | 久久国产欧美日韩精品免费 | 91久久99久91天天拍拍 | 国产精品96久久久久久AV不卡 | 少妇无套内谢久久久久 | qvod电影| 国产精品色欲AV亚洲三区软件 | 国产全肉乱妇杂乱视频 | 亚洲综合小说久久另类区 | 97草碰在线视频免费 | 亚洲人人为我我为人人 | 美国兽皇zoo在线播放 | jk白丝袜美女被男人桶 | 乱VODAFONEWIFI熟妇 | 国产亚洲欧美在线中文BT天堂网 | 伦理电影v男人天堂 | 国产系列视频二区 | 18美女腿打开无遮软件 | 香蕉59tv视频| 97SE亚洲国产综合自在线不卡 | 欧美多人群p刺激交换电影 欧美多毛的大隂道 | 亚洲 欧洲 国产 日产 综合 | 亚洲国产综合另类视频 | 小776 论坛 | 亚洲欧美偷拍视频一区 | 亚洲国产精品无码AV久久久 | 亚洲 欧美 国产 综合久久 | 久久99国产精品二区不卡 | 果冻传媒 在线播放观看 | 亚洲国产成人精品无码区5566 | av狼新人开放注册区 | 爱如潮水3免费观看日本 | 入禽太深视频免费视频 | 啪啪后入内射日韩 |