国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Nginx詳細介紹(并從技術(shù)層面深度剖析)

這篇具有很好參考價值的文章主要介紹了Nginx詳細介紹(并從技術(shù)層面深度剖析)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.nginx 介紹

Nginx (engine x) 是一個輕量級,高性能的 HTTP 和 反向代理 服務(wù),也是一個IMAP/POP3/SMTP服務(wù)。因它的穩(wěn)定性、豐富的功能集、示例配置文件和低系統(tǒng)資源的消耗而聞名。其特點是占有內(nèi)存少,并發(fā)能力強,事實上nginx的并發(fā)能力確實在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好。

2.nginx的優(yōu)勢

  • Nginx 是一個高性能的 Web 和反向代理服務(wù)器,它具有有很多非常優(yōu)越的特性
  • 作為 Web 服務(wù)器:相比 Apache,Nginx 使用更少的資源,支持更多的并發(fā)連接,體現(xiàn)更高的效率,這點使 Nginx 尤其受到虛擬主機提供商的歡迎。能夠支持高達 50,000 個并發(fā)連接數(shù)的響應。
  • 作為負載均衡服務(wù)器:可以進行自定義配置,支持虛擬主機,支持URL重定向,支持網(wǎng)絡(luò)監(jiān)控,支持流媒體傳輸?shù)?。Nginx 既可以在內(nèi)部直接支持 Rails 和 PHP,也可以支持作為 HTTP代理服務(wù)器對外進行服務(wù)。Nginx 用 C 編寫,不論是系統(tǒng)資源開銷還是 CPU 使用效率都比 Perlbal 要好的多。
  • 作為郵件代理服務(wù)器: Nginx 同時也是一個非常優(yōu)秀的郵件代理服務(wù)器(最早開發(fā)這個產(chǎn)品的目的之一也是作為郵件代理服務(wù)器)。
  • Nginx 安裝非常的簡單,配置文件 非常簡潔(還能夠支持perl語法),Bugs非常少的服務(wù)器
  • Nginx 啟動特別容易,并且?guī)缀蹩梢宰龅?strong>7*24不間斷運行,即使運行數(shù)個月也不需要重新啟動。nginx還能夠在不間斷服務(wù)的情況下進行軟件版本的升級。

nginx的優(yōu)點:
1、高并發(fā),高性能(單機環(huán)境下參考服務(wù)器配置,并發(fā)連接數(shù)在7000+到8000左右。集群模式20000+)
2、高可靠??梢?*24小時不間斷運行
3、可擴展性強。模塊化設(shè)計,使得添加模塊非常的平穩(wěn)。
4、支持熱部署??梢栽诓煌V狗?wù)器的情況下升級nginx
5、BSD許可證。nginx不止開源免費的,我們還可以更具實際需求進行定制修改源代碼

3.Nginx VS Apache

3.1.內(nèi)核、語言、誕生時間比較

最大的區(qū)別:事件驅(qū)動模型不一樣,nginx使用的是異步非阻塞模式,apache使用的同步阻塞模式。

特性 Nginx Apache
請求管理 事件驅(qū)動模型,使用異步套接字處理,占用較少的內(nèi)存和CPU開銷 同步套接字、進程和線程每個請求都要使用一個單獨的進程或線程,使用同步套接字
設(shè)計語言 C C、C++
可移植性 多平臺 多平臺
誕生時間 2002 1994

3.2.功能比較

功能 Nginx Apache
HTTPS支持 作為模塊支持 作為模塊支持
虛擬主機 原生支持 原生支持
CGI支持 僅支持FastCGI 支持CGI和FastCGI
系統(tǒng)模塊 靜態(tài)模塊系統(tǒng) 動態(tài)模塊系統(tǒng)

FastCGI的介紹
快速通用網(wǎng)關(guān)接口(Fast Common Gateway Interface/FastCGI)是通用網(wǎng)關(guān)接口(CGI)的改進,描述了客戶端和服務(wù)器程序之間傳輸數(shù)據(jù)的一種標準。
FastCGI致力于減少Web服務(wù)器與CGI程序之間互動的開銷,從而使服務(wù)器可以同時處理更多的Web請求。
與為每個請求創(chuàng)建一個新的進程不同,F(xiàn)astCGI使用持續(xù)的進程來處理一連串的請求。這些進程由FastCGI進程管理器管理,而不是web服務(wù)器。
從以上功能上的對比,我們很難發(fā)現(xiàn)哪些功能Apache無法實現(xiàn)。

3.3.Nginx 相對 apache 的優(yōu)點

  • 輕量級,同樣是web服務(wù)器比Apache 占用更少的內(nèi)存及資源
  • apache采用的就是進程和線程模式工作,來一個請求就開啟一個進程或者線程,大大的占用系統(tǒng)的資源
  • 開源免費(費用)
  • 靜態(tài)處理性能強:Nginx 靜態(tài)處理性能比 Apache 高 3倍以上(性能)
  • 抗高并發(fā):Nginx是采用異步非阻塞來處理請求的,而Apache則是阻塞型的。在高并發(fā)下Nginx 能保持低資源低消耗高性能。
  • 在Apache+PHP(prefork)模式下,如果PHP處理慢或者前端壓力很大的情況下,很容易出Apache進程數(shù)飆升,從而出現(xiàn)拒絕服務(wù)的現(xiàn)象。
  • 高度模塊化的設(shè)計:編寫模塊相對簡單(功能多);
  • 解決了強耦合的問題,讓代碼依賴性變低變?nèi)?,甚至是互不干擾的工作,讓我們定制軟件提供了很大的便利,就是可以自定義安裝???;如果只使用3個???,你給我裝20個???,那就浪費了我系統(tǒng)的資源。
  • 社區(qū)活躍:各種高性能模塊出品迅速(可維護性成本低)

4.Nginx為什么有這么多的優(yōu)勢?

從技術(shù)層面深度剖析nginx程序的設(shè)計思想

4.1.IO多路復用(I/O multiplexing【多并發(fā)】)

多并發(fā)在生活中的案例:超市收銀口的收銀員,將每個收銀口看成一個處理請求的線程,當人數(shù)不多的時候,開一個收銀口一個收銀員就能應付,但是當人數(shù)多起來了,一個收銀口應付不來那么多人了(對應的是海量的請求),這時就需要開啟多個收銀口來應對大量的顧客,而顧客則可以根據(jù)收銀員的忙碌程度進程自由選擇的排隊

  • 第一種方法就是最傳統(tǒng)的多進程并發(fā)模型 (每進來一個新的I/O流會分配一個新的線程管理。)
    Nginx詳細介紹(并從技術(shù)層面深度剖析),Nginx,nginx,運維,linux,centos
  • 第二種方法就是I/O多路復用 (單個線程,通過記錄跟蹤每個I/O流(sock)的狀態(tài),來同時管理多個I/O流 );發(fā)明它的原因,是盡量多的提高服務(wù)器的吞吐能力。在同一個線程里面, 通過撥開關(guān)的方式,來同時傳輸多個I/O流
    Nginx詳細介紹(并從技術(shù)層面深度剖析),Nginx,nginx,運維,linux,centos

4.2.nginx的驅(qū)動模型介紹

一個請求到來了,nginx使用epoll接收請求的過程是怎樣的?

  • select,poll,epoll 都是I/O多路復用的具體的實現(xiàn),其實是他們出現(xiàn)是有先后順序的。
  • I/O多路復用這個概念被提出來以后, 相繼出現(xiàn)了多個方案,但是都需要linux內(nèi)核支持
  • select是第一個實現(xiàn) (1983 左右實現(xiàn)的)。 select 被實現(xiàn)以后,很快就暴露出了很多問題。
    • select 任何一個sock(I/O stream)出現(xiàn)了數(shù)據(jù),select 僅僅會返回,但是并不會告訴你是那個sock上有數(shù)據(jù),于是你只能自己一個一個的找,10幾個sock可能還好,要是幾萬的#sock每次都找一遍就跟快遞員送快遞一樣,每次快遞到了都得你自己去快遞箱里面找,可想而知多麻煩
    • select 只能監(jiān)視1024個鏈接。
    • select 線程不是安全的。
  • 于是14年以后(1997年)一幫人又實現(xiàn)了poll, poll 修復了select的很多問題,比如
    • poll 去掉了1024個鏈接的限制,于是可以有多個連接進來。?但是poll仍然線程不是安全的,這就意味著,不管服務(wù)器有多強悍,也只能在一個線程里面處理一組I/O流。
  • epoll:可以說是I/O 多路復用最新的一個實現(xiàn),epoll 修復了poll 和select絕大部分問題,比如
    • epoll 現(xiàn)在是線程安全的。
    • epoll 現(xiàn)在不僅告訴你sock組里面數(shù)據(jù),還會告訴你具體哪個sock有數(shù)據(jù),你不用自己去找了。

ngnix會有很多連接進來, 默認采用epoll會把他們都監(jiān)視起來,然后像撥開關(guān)一樣,誰有數(shù)據(jù)就撥向誰,然后調(diào)用相應的代碼處理。

4.3.nginx的異步非阻塞模式

//查看服務(wù)器中nginx的worker進程
# yum -y install  psmisc
# pstree |grep nginx
 |-+= 81666 root nginx: master process nginx
 | |--- 82500 nobody nginx: worker process
 | \--- 82501 nobody nginx: worker process
//1個master進程和n個work進程

每進來一個request,會有一個worker進程去處理。但不是全程的處理,處理到什么程度呢?
處理到可能發(fā)生阻塞的地方,比如向上游(后端)服務(wù)器轉(zhuǎn)發(fā)request,并等待請求返回。
那么,這個處理的worker不會這么一直等著,他會在發(fā)送完請求后,注冊一個事件:“如果upstream返回了,告訴我一聲,我再接著干”。于是他就休息去了。這就是【異步】。
此時,如果再有request 進來,他就可以很快再按這種方式處理。這就是非阻塞和IO多路復用。而一旦上游服務(wù)器返回了,就會觸發(fā)這個事件,worker才會來接手,這個request才會接著往下走。這就是【異步回調(diào)】。

4.4.理解同步、異步、阻塞、非阻塞

當我們使用一個簡單的讀取文件的操作來舉例說明:

  1. 同步阻塞(Synchronous Blocking):
    在同步阻塞模式下,程序發(fā)起讀取文件的請求后,會一直等待文件讀取完成,期間無法進行其他操作。只有當文件讀取完成后,程序才能繼續(xù)執(zhí)行后續(xù)操作。
  2. 異步阻塞(Asynchronous Blocking):
    在異步阻塞模式下,程序發(fā)起讀取文件的請求后,會立即返回并繼續(xù)執(zhí)行其他操作。但是程序會周期性地查詢文件是否已經(jīng)讀取完成,如果未完成,則會一直等待,直到文件讀取完成后再繼續(xù)執(zhí)行后續(xù)操作。
  3. 同步非阻塞(Synchronous Non-blocking):
    在同步非阻塞模式下,程序發(fā)起讀取文件的請求后,會立即返回并繼續(xù)執(zhí)行其他操作。程序會不斷地輪詢文件是否已經(jīng)讀取完成,如果未完成,則會立即返回并繼續(xù)輪詢,直到文件讀取完成后再繼續(xù)執(zhí)行后續(xù)操作。
  4. 異步非阻塞(Asynchronous Non-blocking):
    在異步非阻塞模式下,程序發(fā)起讀取文件的請求后,會立即返回并繼續(xù)執(zhí)行其他操作。當文件讀取完成后,系統(tǒng)會通過回調(diào)函數(shù)或者事件通知的方式來通知程序文件已經(jīng)讀取完成,程序再進行后續(xù)處理。

同步和異步是針對程序等待操作完成的方式,阻塞和非阻塞是針對程序等待I/O操作完成的方式。文章來源地址http://www.zghlxwxcb.cn/news/detail-807890.html

到了這里,關(guān)于Nginx詳細介紹(并從技術(shù)層面深度剖析)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 探秘開源隱語:架構(gòu)深度剖析與隱私計算技術(shù)之旅

    探秘開源隱語:架構(gòu)深度剖析與隱私計算技術(shù)之旅

    隱語(SecretFlow)作為螞蟻集團開源的可信隱私計算框架,其架構(gòu)設(shè)計具有多層次的特點,雖然具體分層名稱可能會根據(jù)實際描述略有差異,但我們可以依據(jù)已有的技術(shù)和信息對其進行結(jié)構(gòu)化的拆解: 硬件層(或稱TEE層/TCS層) : 這一層主要涉及到硬件層面的安全保障,尤其

    2024年04月17日
    瀏覽(24)
  • 決策樹C4.5算法的技術(shù)深度剖析、實戰(zhàn)解讀

    決策樹C4.5算法的技術(shù)深度剖析、實戰(zhàn)解讀

    在本篇深入探討的文章中,我們?nèi)娣治隽薈4.5決策樹算法,包括其核心原理、實現(xiàn)流程、實戰(zhàn)案例,以及與其他流行決策樹算法(如ID3、CART和Random Forests)的比較。 關(guān)注TechLead,分享AI全維度知識。作者擁有10+年互聯(lián)網(wǎng)服務(wù)架構(gòu)、AI產(chǎn)品研發(fā)經(jīng)驗、團隊管理經(jīng)驗,同濟本復旦

    2024年02月08日
    瀏覽(16)
  • 【數(shù)據(jù)結(jié)構(gòu)】 棧的深度剖析!超詳細精解!

    【數(shù)據(jù)結(jié)構(gòu)】 棧的深度剖析!超詳細精解!

    ?? 嶼小夏 : 個人主頁 ??個人專欄 : 數(shù)據(jù)結(jié)構(gòu)解析 ?? 莫道桑榆晚,為霞尚滿天! 什么是棧?棧這種數(shù)據(jù)結(jié)構(gòu)有什么樣的特性?它能夠拿來干嘛?本文我們將深度探討,剖析清楚棧的全部,你讓熟練掌握棧的運用! ? 棧是一種特殊的線性表,其只允許在固定的一端進行

    2024年02月08日
    瀏覽(49)
  • Nginx深度解析

    Nginx深度解析

    Nginx是一個開源的高性能Web服務(wù)器,廣泛用于提供HTTP服務(wù)。 它以其高效能、穩(wěn)定性和低資源消耗而聞名。 Nginx的核心特性 異步非阻塞事件驅(qū)動架構(gòu) :Nginx的主要優(yōu)勢之一是它的異步非阻塞處理方式,這使得它在處理大量并發(fā)連接時非常高效。 輕量級和高性能 :相比于其他

    2024年01月19日
    瀏覽(21)
  • 命令行啟動nginx、停止nginx 、重啟nginx詳細教程

    命令行啟動nginx、停止nginx 、重啟nginx詳細教程

    1、按住shift鍵, 右鍵空白處, 打開powerShell窗口 如下: 2、輸入啟動 nginx指令 start nginx 屏幕會閃一個彈窗 再打開任務(wù)管理器 查看是否已有服務(wù)? 有任務(wù)說明啟動成功了 備注: 也可以雙擊nginx.exe 可以運行 但是這種方式容易造成 上次的nginx未關(guān)閉 服務(wù)中會有多個nginx服務(wù) 更新

    2024年02月12日
    瀏覽(19)
  • Nginx篇-Nginx詳細安裝教程

    Nginx篇-Nginx詳細安裝教程

    Nginx是一款輕量級的 Web 服務(wù)器 、 反向代理服務(wù)器 及電子郵件(IMAP/POP3)代理服務(wù)器。 Web 服務(wù)器:通俗意義下的Web服務(wù)器可理解能處理靜態(tài)資源,如html、css、js的服務(wù)器,其并發(fā)能力遠高于應用服務(wù)器。 正向代理:通俗的講就是Web服務(wù)器代替客戶端去訪問目標的服務(wù)器,此

    2024年02月16日
    瀏覽(20)
  • nginx(NGINX)詳細下載安裝及使用教程

    nginx(NGINX)詳細下載安裝及使用教程

    NGINX 是一個非常流行的開源 Web 服務(wù)器和反向代理服務(wù)器 ,它可以幫助用戶負載均衡(主要體現(xiàn)在可以創(chuàng)建多個服務(wù)器,一般將靜態(tài)資源頁面和動態(tài)頁面分開部署到不同服務(wù)器,這樣就可以降低服務(wù)器壓力)、緩存、反向代理、SSL 終止等功能,常用于 Web 應用程序的開發(fā)和部

    2024年04月26日
    瀏覽(25)
  • 【Nginx筆記01】Nginx配置文件介紹、反向代理、負載均衡

    【Nginx筆記01】Nginx配置文件介紹、反向代理、負載均衡

    這篇文章,主要介紹Nginx配置文件介紹、反向代理、負載均衡。 目錄 一、nginx介紹 1.1、配置文件 1.2、反向代理 1.3、負載均衡 nginx配置文件是位于【conf】目錄下的【nginx.conf】文件,這個文件中有三大部分組成,分別是:全局塊、events塊、http塊。 全局塊:定義一些全局變量,

    2023年04月23日
    瀏覽(48)
  • 【Linux】nginx基礎(chǔ)篇 -- 介紹及yum安裝nginx

    【Linux】nginx基礎(chǔ)篇 -- 介紹及yum安裝nginx

    ????? 博主簡介 ????云計算領(lǐng)域優(yōu)質(zhì)創(chuàng)作者 ????華為云開發(fā)者社區(qū)專家博主 ????阿里云開發(fā)者社區(qū)專家博主 ?? 交流社區(qū): 運維交流社區(qū) 歡迎大家的加入! ?? 希望大家多多支持,我們一起進步!?? ??如果文章對你有幫助的話,歡迎 點贊 ???? 評論 ?? 收藏

    2024年02月08日
    瀏覽(18)
  • 深度詳解Nginx正向代理與反向代理

    深度詳解Nginx正向代理與反向代理

    它的工作原理就像一個跳板,簡單的說,我是一個用戶,我訪問不了某網(wǎng)站,但是我能訪問一個代理服務(wù)器,這個代理服務(wù)器呢,他能訪問那個我不能訪問的網(wǎng)站,于是我先連上代理服務(wù)器,告訴他我需要那個無法訪問網(wǎng)站的內(nèi)容,代理服務(wù)器去取回來,然后返回給我,從網(wǎng)站的角度

    2024年02月11日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包