Nginx 完全開發指南:使用 C、C++ 和 OpenResty

羅劍鋒

買這商品的人也買了...

商品描述

《Nginx完全開發指南:使用C、C++和OpenResty》內容提要
Nginx是著名的Web服務器,性能優異,運行效率遠超傳統的Apache、Tomcat,廣泛應用於國內外諸多因特網公司。
Nginx的一個突出特點是其靈活優秀的模塊化架構,可以在不修改核心的前提下增加任意功能,自2004年發布至今,已經擁有百餘個官方及非官方的功能模塊(如proxy、mysql、redis、rtmp、lua等),使得Nginx成長為了一個近乎“全能”的服務器軟件。
Nginx功能強大,架構復雜,學習、維護和開發的門檻較高。為了幫助讀者跨越這一障礙,《Nginx完全開發指南:使用C、C++和OpenResty》深入最新的Nginx源碼(Stable 1.12.0),詳細剖析了模塊體系、動態插件、功能框架、進程模型、事件驅動、線程池、TCP/UDP/HTTP處理等Nginx核心運行機制,在此基礎上講解如何使用C、C++、Lua、nginScript等語言來增強擴展Nginx,讓任何人都能夠便捷、輕松地開發和定製Nginx,進而應用到自己的實際工作中,創造出更多的價值。
《Nginx完全開發指南:使用C、C++和OpenResty》結構嚴謹、脈絡清晰、論述精確、詳略得當、圖文並茂,值得廣大軟件開發工程師、系統運維工程師和編程愛好者擁有。

海報:

作者簡介

羅劍鋒(網名Chrono)1996年就讀於東北財經大學;1997年開始接觸C/C++;1998年參加計算機軟件專業技術資格和水平考試,獲高級程序員資質;2003年畢業於北京理工大學,獲計算機專業碩士學位。

主要研究方向為C/C++、設計模式、高性能網絡服務器開發,業餘愛好是閱讀、旅遊、欣賞音樂和電影。

目錄大綱

第0章導讀1
0.1關於本書1
0.2讀者對象2
0.3讀者要求3
0.4運行環境4
0.5本書的結構4
0.6如何閱讀本書7
0.7本書的源碼8
第1章Nginx入門9
1.1關於Nginx9
1.2安裝Nginx13
1.3配置Nginx19
1.4總結30
第2章Nginx開發準備31
2.1開發環境31
2.2目錄結構32
2.3源碼特點34
2.4使用C++35
2.5C++包裝類38
2.6總結40
第3章Nginx基礎設施41
3.1頭文件41
3.2整數類型42
3.3錯誤處理47
3.4內存池50
3.5字符串58
3.6時間與日期64
3.7運行日誌70
3.8總結74
第4章Nginx高級數據結構77
4.1動態數組77
4.2單向鍊錶83
4.3雙端隊列90
4.4紅黑樹101
4.5緩衝區108
4.6數據塊鏈113
4.7鍵值對120
4.8總結121
第5章Nginx開發綜述123
5.1最簡單的模塊123
5.2開發基本流程131
5.3編譯腳本134
5.4總結137
第6章Nginx模塊體系139
6.1模塊架構139
6.2配置解析152
6.3源碼分析168
6.4C++封裝172
6.5C++開發模塊180
6.6總結187
第7章NginxHTTP框架綜述191
7.1框架簡介191
7.2處理引擎198
7.3過濾 擎205
7.4源碼分析211
7.5C++封裝213
7.6總結219
第8章NginxHTTP請求處理221
8.1狀態碼221
8.2請求結構體222
8.3請求行223
8.4請求頭225
8.5請求體226
8.6響應頭227
8.7響應體229
8.8源碼分析229
8.9C++封裝232
8.10開發handler模塊241
8.11開發filter模塊246
8.12總結253
第9章NginxHTTP請求轉發255
9.1框架簡介255
9.2請求轉發機制261
9.3負載均衡機制266
9.4源碼分析275
9.5C++封裝281
9.6開發upstream模塊288
9.7開發load—balance模塊294
9.8總結299
第10章NginxHTTP子請求301
10.1子請求簡介301
10.2子請求運行機制307
10.3C++封裝314
10.4數據回傳模塊317
10.5在模塊裡使用子請求323
10.6總結328
第11章Nginx變量329
11.1結構定義329
11.2運行機制332
11.3複雜變量334
11.4C++封裝335
11.5在模塊裡使用變量341
11.6在模塊裡使用複雜變量343
11.7總結345
第12章Nginx輔助設施347
12.1摘要算法347
12.2編碼和解碼352
12.3正則表達式356
12.4共享內存356
12.5總結359
13章Nginx進程機制361
13.1基本系統調用361
13.2進程系統調用362
13.3信號系統調用364
13.4結構定義365
13.5全局變量368
13.6啟動過程370
13.7信號處理377
13.8單進程模式379
13.9多進程模式382
13.10總結390
第14章Nginx事件機制393
14.1基本系統調用393
14.2socket系統調用395
14.3epoll系統調用399
14.4結構定義403
14.5定時器415
14.6模塊體系419
14.7全局變量425
14.8運行機制427
14.9總結452
第15章Nginx多線程機制455
15.1eventfd系統調用455
15.2pthread系統調用456
15.3結構定義457
15.4事件通知460
15.5運行機制463
15.6在模塊裡使用多線程469
15.7總結474
第16章NginxStream機制477
16.1模塊體系477
16.2監聽端口483
16.3處理引擎491
16.4過濾引擎495
16.5運行機制496
16.6開發stream模塊507
16.7總結514
第17章NginxHTTP機制517
17.1結構定義517
17.2初始化連接519
17.3執行引擎528
17.4處理請求體534
17.5發送數據540
17.6結束請求543
17.7總結548
第18章Ngi nx與設計模式551
18.1設計模式簡介551
18.2框架級別的模式551
18.3業務級別的模式553
18.4代碼級別的模式554
18.5總結556
第19章OpenResty開發557
19.1簡介557
19.2Lua語言566
19.3LuaJIT577
19.4Lua模塊581
19.5功能接口585
19.6應用實例594
19.7StreamLua模塊598
19.8lua—resty庫601
19.9總結603
第20章結束語605
20.1本書的遺憾605
20.2下一步605
20.3臨別贈言606

 

附錄A推薦書目607
附錄BGDB調試簡介609
附錄CNginxC++模塊簡介611
附錄DNginx的字符串格式化613
附錄EnginScript簡介615