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

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

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

一份Nginx模塊開發(fā)與架構(gòu)解析實(shí)戰(zhàn)文檔

Linux愛好者 ? 來源:Linux愛好者 ? 作者:Linux愛好者 ? 2021-03-03 15:36 ? 次閱讀

Nginx作為負(fù)載均衡服務(wù):Nginx 既可以在內(nèi)部直接支持 Rails 和 PHP 程序?qū)ν膺M(jìn)行服務(wù),也可以支持作為 HTTP代理服務(wù)對外進(jìn)行服務(wù)。Nginx采用C進(jìn)行編寫,不論是系統(tǒng)資源開銷還是CPU使用效率都比 Perlbal 要好很多。

今天分享一份Nginx模塊開發(fā)與架構(gòu)解析實(shí)戰(zhàn)文檔,文檔35.6 MB內(nèi)容全部可復(fù)制!相信看完后對Nginx會有更深入的了解。

這份文檔的價(jià)值

資料共三部分,首先通過介紹官方Nginx的基本用法和配置規(guī)則,幫助大家了解一般Nginx模塊的用法,然后重點(diǎn)介紹了如何開發(fā)HTTP模塊(含HTTP過濾模塊)來得到定制化的Nginx,其中包括開發(fā)一個(gè)功能復(fù)雜的模塊所需要了解的各種知識,并對內(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)容。

通過這份資料,你可以學(xué)到:

對Nginx及如何將它搭建成一個(gè)高性能的Web服務(wù)器有深入的了解。

通過開發(fā)特定的HTTP模塊實(shí)現(xiàn)高性能Web服務(wù)器。

了解Nginx的架構(gòu)設(shè)計(jì),學(xué)習(xí)其怎樣充分使用服務(wù)器上的硬件資源。

了解如何快速定位、修復(fù)Nginx中深層次Bug。

利用Nginx提供的框架,設(shè)計(jì)出任何基于TCP的、無阻塞的、易于擴(kuò)展的服務(wù)器。

由于內(nèi)容過多,在此只以截圖展示部分內(nèi)容,詳細(xì)完整版的文檔網(wǎng)盤鏈接和提取碼請見文末。

第1章研究Nginx前的準(zhǔn)備工作:

什么是Nginx?它有哪些特點(diǎn)?我們選擇Nginx的理由是什么?如何編譯安裝Nginx?這種安裝方式背后隱藏的又是什么樣的思想呢?本章將會回答上述問題。

第2章Nginx的配置:

通過本章的學(xué)習(xí),大家可以熟練地配置一個(gè)靜態(tài)Web服務(wù)器:對影響Web服務(wù)器性能的各個(gè)配置項(xiàng)有深入的理解:對配置語法有全面的了解。通過互聯(lián)網(wǎng)或其他途徑得到任意模塊的配置說明,然后可通過修改nginx. conf文件來使用這些模塊的功能。

第3章開發(fā)一個(gè)簡單的HTTP模塊:

本章不會深入探討HTTP模塊與Nginx的各個(gè)核心模塊是如何配合工作的,而且這部分提到的每個(gè)接口將只涉及用法而不涉及實(shí)現(xiàn)原理,在第3部分我們才會進(jìn)一步闡述本章提到的許多接口是如何實(shí)現(xiàn)異步訪問的。

第4章配置、error日志和請求上下文:

編寫全異步的HTTP模塊時(shí),必須要有上下文來維持一個(gè)請求的必要信息,在4.5節(jié)中,首先探討請求的上下文與全異步實(shí)現(xiàn)的Nginx服務(wù)之間的關(guān)系,以及如何使用HTTP上下文,然后簡單描述HTTP框架是如何管理請求的上下文結(jié)構(gòu)體的。

第5章訪問第三方服務(wù):

本章仍然以mytest模塊為例進(jìn)行說明,但會擴(kuò)展mytest的功能。注意,文中沒有提及的代碼(如定義nytest模塊)都與第3章完全相同。

第6章開發(fā)一個(gè)簡單的HTTP過濾模塊:

介紹如何開發(fā)HTTP過濾模塊。

第7章Nginx提供的高級數(shù)據(jù)結(jié)構(gòu):

將介紹Nginx實(shí)現(xiàn)的6個(gè)基本容器,熟練使用這6個(gè)基本容器,將會大大提高開發(fā)Nginx模塊的效率,也可以更加方便地實(shí)現(xiàn)復(fù)雜的功能。

第三部分針對高級讀者,這是本書的重點(diǎn),徹底解析Nginx架構(gòu),深入探討Nginx各種設(shè)計(jì)的目的與意義,并對第二部分使用到的一些特性進(jìn)行代碼設(shè)計(jì)實(shí)現(xiàn)上的探索。讀者讀完本部分,會對整個(gè)Nginx架構(gòu)有清晰的認(rèn)識,可以編寫各種模塊(不局限于http模塊)插入到Nginx中,從而定制自己的Nginx。

第8章Nginx基礎(chǔ)架構(gòu):

實(shí)現(xiàn)高性能、定制化的Web服務(wù)器功能。

第9章事件模塊:

全面探討Nginx的事件驅(qū)動機(jī)制是如何工作的。

第10章HTTP框架的初始化:

將探討事件消費(fèi)模塊的大戶”HTP 模塊。Nginx作為Web服務(wù)器,其HTTP模塊的數(shù)量遠(yuǎn)超過了其他4類模塊(核心模塊、事件模塊、配置模塊、郵件模塊),其代碼規(guī)模也同樣遙遙領(lǐng)先。

第11章HTTP框架的執(zhí)行流程:

介紹動態(tài)的HTTP框架,主要探討在請求的生命周期中,基于事件驅(qū)動的HTTP框架是怎樣處理網(wǎng)絡(luò)事件以及怎樣集成各個(gè)HTTP模塊來共同處理HTTP請求的,同時(shí),還會介紹為了簡化HTTP模塊的開發(fā)難度而提供的多個(gè)非阻塞的異步方法。

第12章upstream機(jī)制的設(shè)計(jì)與實(shí)現(xiàn):

討論ustream機(jī)制的設(shè)計(jì)和實(shí)現(xiàn),以此幫助大家全面了解如何使用upstream訪間上游服務(wù)器。

第13章郵件代理模塊:

介紹郵件代理功能到底做了哪些事情,會分析Nginx如何實(shí)現(xiàn)郵件代理功能。

第14章進(jìn)程間的通信機(jī)制:

這部分并不是說明Linux F有哪些進(jìn)程通信方式,而是為了說明Nginx選擇了哪些方式來同Bmaster進(jìn)程和多個(gè)worker進(jìn)程間的數(shù)據(jù),Nginx框架是怎樣重新封裝了這些進(jìn)程間通信方式

第15章變量:

Nginx有許多功能體現(xiàn)在nginx.com這個(gè)腳本式的配置文件里,這些配置項(xiàng)的格式五花八門、風(fēng)格各異,原因是它們都由各Nginx模塊自定義,并沒有什么統(tǒng)一的標(biāo)準(zhǔn),這在第4章已經(jīng)提及。

第16章slab共享內(nèi)存:

本章除了說明如何使用它以外,同時(shí)還會詳細(xì)介紹實(shí)現(xiàn)原理,從中我們可以發(fā)現(xiàn)它的設(shè)計(jì)初衷及不適用的場景。Slab實(shí)現(xiàn)的源代碼非常高效,然而卻也有些生澀,本章會較多地通過源代碼說明各種二進(jìn)制位操作,以幫助大家學(xué)習(xí)slab的編碼藝術(shù)。

責(zé)任編輯:lq

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

    關(guān)注

    7

    文章

    2613

    瀏覽量

    47012
  • Web服務(wù)器
    +關(guān)注

    關(guān)注

    0

    文章

    137

    瀏覽量

    24315
  • nginx
    +關(guān)注

    關(guān)注

    0

    文章

    139

    瀏覽量

    12115

原文標(biāo)題:Nginx 模塊開發(fā)與架構(gòu)全方位深度解析

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    麻煩廠家發(fā)一份CS1237-SO的驅(qū)動程序給我STC版本的

    麻煩廠家發(fā)一份CS1237-SO的驅(qū)動程序給我STC版本的741891100@qq.com
    發(fā)表于 08-23 14:48

    一份CSU32P20的ADC范例程序

    一份CSU32P20的ADC范例程序,郵箱2605822110@qq.com
    發(fā)表于 08-10 18:04

    nginx重啟命令linux步驟是什么?

    ./nginx -s reload 即可   方法二:查找當(dāng)前nginx進(jìn)程號,然后輸入命令:kill -HUP 進(jìn)程號 實(shí)現(xiàn)重啟nginx服務(wù)   Nginx的整體
    發(fā)表于 07-11 17:13

    nginx重啟命令linux步驟是什么?

    ./nginx -s reload 即可   方法二:查找當(dāng)前nginx進(jìn)程號,然后輸入命令:kill -HUP 進(jìn)程號 實(shí)現(xiàn)重啟nginx服務(wù)   Nginx的整體
    發(fā)表于 07-10 16:40

    一份CS1237基于STM32硬件外設(shè)SPI的代碼

    一份CS1237基于STM32硬件外設(shè)SPI的代碼
    發(fā)表于 05-10 10:51

    求助一份電路圖

    各位大佬,誰有這個(gè)開發(fā)板的電路圖,有的話可以分享給小弟一份
    發(fā)表于 05-07 12:12

    STM32 IAP升級,KEIL如何一份代碼運(yùn)行于兩個(gè)APP區(qū)?

    校驗(yàn)。目前的問題是,沒辦法使用一份代碼運(yùn)行兩個(gè)APP。兩個(gè)APP,則IAP跳轉(zhuǎn)不同的APP,跳轉(zhuǎn)的地址不樣,則代碼中需要設(shè)置的中斷向量表及鏈接地址。這樣,一份代碼就不行了,而且兩
    發(fā)表于 03-26 07:20

    一份明偉DRP—240—24電源盒

    一份明偉DRP—240—24電源盒電路圖
    發(fā)表于 02-08 16:47

    一份CS32L010最新資料

    需要一份最新的CS32L010 ARM? Cortex?-M0 32 位微控制器用戶參考手冊,還有例程,郵箱43952588@qq.com
    發(fā)表于 01-23 16:26

    docker微服務(wù)架構(gòu)實(shí)戰(zhàn)

    隨著云計(jì)算和容器化技術(shù)的快速發(fā)展,微服務(wù)架構(gòu)在軟件開發(fā)領(lǐng)域中變得越來越流行。微服務(wù)架構(gòu)個(gè)大型的軟件應(yīng)用拆分成多個(gè)小型的、獨(dú)立部署的服務(wù),每個(gè)服務(wù)負(fù)責(zé)獨(dú)立的業(yè)務(wù)功能。其中,Docke
    的頭像 發(fā)表于 11-23 09:26 ?515次閱讀

    Nginx 如何實(shí)現(xiàn)高性能低消耗

    。Nginx具有豐富的模塊庫、靈活的配置、較低資源消耗等優(yōu)點(diǎn)。下面,我們起深入看Nginx的工作機(jī)制 1.
    的頭像 發(fā)表于 11-11 11:31 ?495次閱讀
    <b class='flag-5'>Nginx</b> 如何實(shí)現(xiàn)高性能低消耗

    Nginx目錄結(jié)構(gòu)有哪些

    什么是Nginx? Nginx個(gè) 輕量級/高性能的反向代理Web服務(wù)器,他實(shí)現(xiàn)非常高效的反向代理、負(fù)載平衡,他可以處理2-3萬并發(fā)連接數(shù),官方監(jiān)測能支持5萬并發(fā),現(xiàn)在中國使用nginx
    的頭像 發(fā)表于 11-11 11:27 ?534次閱讀
    <b class='flag-5'>Nginx</b>目錄結(jié)構(gòu)有哪些

    LabVIEW入門與實(shí)戰(zhàn)開發(fā)100例

    LabVIEW入門與實(shí)戰(zhàn)開發(fā)100例,實(shí)用例子
    發(fā)表于 10-26 15:25 ?39次下載

    請發(fā)一份CS1237使用例程,郵箱294259193@qq.com,謝謝

    請發(fā)一份CS1237使用例程,郵箱294259193@qq.com,謝謝
    發(fā)表于 10-11 09:26

    版主給一份CS32F031的SDK 謝謝

    版主給一份CS32F031的SDK 謝謝。
    發(fā)表于 10-06 16:01