Nginx作為負(fù)載均衡服務(wù):Nginx 既可以在內(nèi)部直接支持 Rails 和 PHP 程序?qū)ν膺M(jìn)行服務(wù),也可以支持作為 HTTP代理服務(wù)對(duì)外進(jìn)行服務(wù)。Nginx采用C進(jìn)行編寫(xiě),不論是系統(tǒng)資源開(kāi)銷(xiāo)還是CPU使用效率都比 Perlbal 要好很多。
今天分享一份Nginx模塊開(kāi)發(fā)與架構(gòu)解析實(shí)戰(zhàn)文檔,文檔35.6 MB內(nèi)容全部可復(fù)制!相信看完后對(duì)Nginx會(huì)有更深入的了解。
這份文檔的價(jià)值
本資料共三部分,首先通過(guò)介紹官方Nginx的基本用法和配置規(guī)則,幫助大家了解一般Nginx模塊的用法,然后重點(diǎn)介紹了如何開(kāi)發(fā)HTTP模塊(含HTTP過(guò)濾模塊)來(lái)得到定制化的Nginx,其中包括開(kāi)發(fā)一個(gè)功能復(fù)雜的模塊所需要了解的各種知識(shí),并對(duì)內(nèi)存池的實(shí)現(xiàn)細(xì)節(jié)及TCP協(xié)議進(jìn)行了詳細(xì)介紹;接著,綜合Nginx框架代碼分析了Nginx架構(gòu)的設(shè)計(jì)理念和技巧,此外,還新增了如何在模塊中支持HTTP變量,以及與slab共享內(nèi)存等相關(guān)的內(nèi)容。
通過(guò)這份資料,你可以學(xué)到:
對(duì)Nginx及如何將它搭建成一個(gè)高性能的Web服務(wù)器有深入的了解。
通過(guò)開(kāi)發(fā)特定的HTTP模塊實(shí)現(xiàn)高性能Web服務(wù)器。
了解Nginx的架構(gòu)設(shè)計(jì),學(xué)習(xí)其怎樣充分使用服務(wù)器上的硬件資源。
了解如何快速定位、修復(fù)Nginx中深層次Bug。
利用Nginx提供的框架,設(shè)計(jì)出任何基于TCP的、無(wú)阻塞的、易于擴(kuò)展的服務(wù)器。
由于內(nèi)容過(guò)多,在此只以截圖展示部分內(nèi)容,詳細(xì)完整版的文檔網(wǎng)盤(pán)鏈接和提取碼請(qǐng)見(jiàn)文末。
第1章研究Nginx前的準(zhǔn)備工作:
什么是Nginx?它有哪些特點(diǎn)?我們選擇Nginx的理由是什么?如何編譯安裝Nginx?這種安裝方式背后隱藏的又是什么樣的思想呢?本章將會(huì)回答上述問(wèn)題。
第2章Nginx的配置:
通過(guò)本章的學(xué)習(xí),大家可以熟練地配置一個(gè)靜態(tài)Web服務(wù)器:對(duì)影響Web服務(wù)器性能的各個(gè)配置項(xiàng)有深入的理解:對(duì)配置語(yǔ)法有全面的了解。通過(guò)互聯(lián)網(wǎng)或其他途徑得到任意模塊的配置說(shuō)明,然后可通過(guò)修改nginx. conf文件來(lái)使用這些模塊的功能。
第3章開(kāi)發(fā)一個(gè)簡(jiǎn)單的HTTP模塊:
本章不會(huì)深入探討HTTP模塊與Nginx的各個(gè)核心模塊是如何配合工作的,而且這部分提到的每個(gè)接口將只涉及用法而不涉及實(shí)現(xiàn)原理,在第3部分我們才會(huì)進(jìn)一步闡述本章提到的許多接口是如何實(shí)現(xiàn)異步訪(fǎng)問(wèn)的。
第4章配置、error日志和請(qǐng)求上下文:
編寫(xiě)全異步的HTTP模塊時(shí),必須要有上下文來(lái)維持一個(gè)請(qǐng)求的必要信息,在4.5節(jié)中,首先探討請(qǐng)求的上下文與全異步實(shí)現(xiàn)的Nginx服務(wù)之間的關(guān)系,以及如何使用HTTP上下文,然后簡(jiǎn)單描述HTTP框架是如何管理請(qǐng)求的上下文結(jié)構(gòu)體的。
第5章訪(fǎng)問(wèn)第三方服務(wù):
本章仍然以mytest模塊為例進(jìn)行說(shuō)明,但會(huì)擴(kuò)展mytest的功能。注意,文中沒(méi)有提及的代碼(如定義nytest模塊)都與第3章完全相同。
第6章開(kāi)發(fā)一個(gè)簡(jiǎn)單的HTTP過(guò)濾模塊:
介紹如何開(kāi)發(fā)HTTP過(guò)濾模塊。
第7章Nginx提供的高級(jí)數(shù)據(jù)結(jié)構(gòu):
將介紹Nginx實(shí)現(xiàn)的6個(gè)基本容器,熟練使用這6個(gè)基本容器,將會(huì)大大提高開(kāi)發(fā)Nginx模塊的效率,也可以更加方便地實(shí)現(xiàn)復(fù)雜的功能。
第三部分針對(duì)高級(jí)讀者,這是本書(shū)的重點(diǎn),徹底解析Nginx架構(gòu),深入探討Nginx各種設(shè)計(jì)的目的與意義,并對(duì)第二部分使用到的一些特性進(jìn)行代碼設(shè)計(jì)實(shí)現(xiàn)上的探索。讀者讀完本部分,會(huì)對(duì)整個(gè)Nginx架構(gòu)有清晰的認(rèn)識(shí),可以編寫(xiě)各種模塊(不局限于http模塊)插入到Nginx中,從而定制自己的Nginx。
第8章Nginx基礎(chǔ)架構(gòu):
實(shí)現(xiàn)高性能、定制化的Web服務(wù)器功能。
第9章事件模塊:
全面探討Nginx的事件驅(qū)動(dòng)機(jī)制是如何工作的。
第10章HTTP框架的初始化:
將探討事件消費(fèi)模塊的大戶(hù)”HTP 模塊。Nginx作為Web服務(wù)器,其HTTP模塊的數(shù)量遠(yuǎn)超過(guò)了其他4類(lèi)模塊(核心模塊、事件模塊、配置模塊、郵件模塊),其代碼規(guī)模也同樣遙遙領(lǐng)先。
第11章HTTP框架的執(zhí)行流程:
介紹動(dòng)態(tài)的HTTP框架,主要探討在請(qǐng)求的生命周期中,基于事件驅(qū)動(dòng)的HTTP框架是怎樣處理網(wǎng)絡(luò)事件以及怎樣集成各個(gè)HTTP模塊來(lái)共同處理HTTP請(qǐng)求的,同時(shí),還會(huì)介紹為了簡(jiǎn)化HTTP模塊的開(kāi)發(fā)難度而提供的多個(gè)非阻塞的異步方法。
第12章upstream機(jī)制的設(shè)計(jì)與實(shí)現(xiàn):
討論ustream機(jī)制的設(shè)計(jì)和實(shí)現(xiàn),以此幫助大家全面了解如何使用upstream訪(fǎng)間上游服務(wù)器。
第13章郵件代理模塊:
介紹郵件代理功能到底做了哪些事情,會(huì)分析Nginx如何實(shí)現(xiàn)郵件代理功能。
第14章進(jìn)程間的通信機(jī)制:
這部分并不是說(shuō)明Linux F有哪些進(jìn)程通信方式,而是為了說(shuō)明Nginx選擇了哪些方式來(lái)同Bmaster進(jìn)程和多個(gè)worker進(jìn)程間的數(shù)據(jù),Nginx框架是怎樣重新封裝了這些進(jìn)程間通信方式
第15章變量:
Nginx有許多功能體現(xiàn)在nginx.com這個(gè)腳本式的配置文件里,這些配置項(xiàng)的格式五花八門(mén)、風(fēng)格各異,原因是它們都由各Nginx模塊自定義,并沒(méi)有什么統(tǒng)一的標(biāo)準(zhǔn),這在第4章已經(jīng)提及。
第16章slab共享內(nèi)存:
本章除了說(shuō)明如何使用它以外,同時(shí)還會(huì)詳細(xì)介紹實(shí)現(xiàn)原理,從中我們可以發(fā)現(xiàn)它的設(shè)計(jì)初衷及不適用的場(chǎng)景。Slab實(shí)現(xiàn)的源代碼非常高效,然而卻也有些生澀,本章會(huì)較多地通過(guò)源代碼說(shuō)明各種二進(jìn)制位操作,以幫助大家學(xué)習(xí)slab的編碼藝術(shù)。
責(zé)任編輯:lq
-
模塊
+關(guān)注
關(guān)注
7文章
2730瀏覽量
47634 -
Web服務(wù)器
+關(guān)注
關(guān)注
0文章
138瀏覽量
24449 -
nginx
+關(guān)注
關(guān)注
0文章
152瀏覽量
12199
原文標(biāo)題:Nginx 模塊開(kāi)發(fā)與架構(gòu)全方位深度解析
文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛(ài)好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論