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