日韩精品 中文字幕 动漫,91亚洲午夜一区,在线不卡日本v一区v二区丶,久久九九国产精品自在现拍

注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)網(wǎng)絡(luò)與數(shù)據(jù)通信網(wǎng)絡(luò)組建與管理深入理解Nginx:模塊開發(fā)與架構(gòu)解析

深入理解Nginx:模塊開發(fā)與架構(gòu)解析

深入理解Nginx:模塊開發(fā)與架構(gòu)解析

定 價:¥89.00

作 者: 陶輝 著
出版社: 機(jī)械工業(yè)出版社
叢編項:
標(biāo) 簽: 計算機(jī)與互聯(lián)網(wǎng) 網(wǎng)絡(luò)與通信

ISBN: 9787111414780 出版時間: 2013-04-01 包裝: 平裝
開本: 16 頁數(shù): 584 字?jǐn)?shù):  

內(nèi)容簡介

  《深入理解Nginx:模塊開發(fā)與架構(gòu)解析》是阿里巴巴資深Nginx技術(shù)專家嘔心瀝血之作,是作者多年的經(jīng)驗結(jié)晶,也是目前市場上唯一一本通過還原Nginx設(shè)計思想,剖析Nginx架構(gòu)來幫助讀者快速高效開發(fā)HTTP模塊的圖書?!渡钊肜斫釴ginx:模塊開發(fā)與架構(gòu)解析》首先通過介紹官方Nginx的基本用法和配置規(guī)則,幫助讀者了解一般Nginx模塊的用法,然后重點介紹如何開發(fā)HTTP模塊(含HTTP過濾模塊)來得到定制的Nginx,其中包括開發(fā)一個功能復(fù)雜的模塊所需要了解的各種知識,如Nginx的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)、配置項的解析、記錄日志的工具以及upstream、subrequest的使用方法等。在此基礎(chǔ)上,綜合Nginx框架代碼分析Nginx的架構(gòu),介紹其設(shè)計理念和技巧,進(jìn)一步幫助讀者自由、有效地開發(fā)出功能豐富、性能一流的Nginx模塊。

作者簡介

  陶輝,思科后臺工程師,從事服務(wù)端開發(fā)近十年,擅長Linux分布式架構(gòu)下的海量數(shù)據(jù)處理,擅長C/C++開發(fā)的高性能高吞吐量網(wǎng)絡(luò)服務(wù),曾任思科DMS后臺架構(gòu)設(shè)計工作,曾在騰訊QQ空間后臺個人信息中心、個人檔、漂流瓶、空間日志、花藤、好友買賣等項目中擔(dān)任服務(wù)器設(shè)計與開發(fā)工作,曾在華為中央軟件部綜合網(wǎng)管平臺擔(dān)任北向接口設(shè)計開發(fā)工作。擁有豐富的Linux高性能服務(wù)器開發(fā)經(jīng)驗,豐富的云存儲系統(tǒng)開發(fā)經(jīng)驗,目前關(guān)注云文檔管理系統(tǒng)和Nginx的再開發(fā)。

圖書目錄

前 言
第一部分 Nginx能幫我們做什么
第1章 研究Nginx前的準(zhǔn)備工作
1.1 Nginx是什么
1.2 為什么選擇Nginx
1.3 準(zhǔn)備工作
1.3.1 Linux操作系統(tǒng)
1.3.2 使用Nginx的必備軟件
1.3.3 磁盤目錄
1.3.4 Linux內(nèi)核參數(shù)的優(yōu)化
1.3.5 獲取Nginx源碼
1.4 編譯安裝Nginx
1.5 configure詳解
1.5.1 configure的命令參數(shù)
1.5.2 configure執(zhí)行流程
1.5.3 configure生成的文件
1.6 Nginx的命令行控制
1.7 小結(jié)
第2章 Nginx的配置
2.1 運行中的Nginx進(jìn)程間的關(guān)系
2.2 Nginx配置的通用語法
2.2.1 塊配置項
2.2.2 配置項的語法格式
2.2.3 配置項的注釋
2.2.4 配置項的單位
2.2.5 在配置中使用變量
2.3 Nginx服務(wù)的基本配置
2.3.1 用于調(diào)試進(jìn)程和定位問題的配置項
2.3.2 正常運行的配置項
2.3.3 優(yōu)化性能的配置項
2.3.4 事件類配置項
2.4 用HTTP核心模塊配置一個靜態(tài)Web服務(wù)器
2.4.1 虛擬主機(jī)與請求的分發(fā)
2.4.2 文件路徑的定義
2.4.3 內(nèi)存及磁盤資源的分配
2.4.4 網(wǎng)絡(luò)連接的設(shè)置
2.4.5 MIME類型的設(shè)置
2.4.6 對客戶端請求的限制
2.4.7 文件操作的優(yōu)化
2.4.8 對客戶端請求的特殊處理
2.4.9 ngx_http_core_module模塊提供的變量
2.5 用HTTP proxy module配置一個反向代理服務(wù)器
2.5.1 負(fù)載均衡的基本配置
2.5.2 反向代理的基本配置
2.6 小結(jié)
第二部分 如何編寫HTTP模塊
第3章 開發(fā)一個簡單的HTTP模塊
3.1 如何調(diào)用HTTP模塊
3.2 準(zhǔn)備工作
3.2.1 整型的封裝
3.2.2 ngx_str_t數(shù)據(jù)結(jié)構(gòu)
3.2.3 ngx_list_t數(shù)據(jù)結(jié)構(gòu)
3.2.4 ngx_table_elt_t數(shù)據(jù)結(jié)構(gòu)
3.2.5 ngx_buf_t數(shù)據(jù)結(jié)構(gòu)
3.2.6 ngx_chain_t數(shù)據(jù)結(jié)構(gòu)
3.3 如何將自己的HTTP模塊編譯進(jìn)Nginx
3.3.1 config文件的寫法
3.3.2 利用configure腳本將定制的模塊加入到Nginx中
3.3.3 直接修改Makefile文件
3.4 HTTP模塊的數(shù)據(jù)結(jié)構(gòu)
3.5 定義自己的HTTP模塊
3.6 處理用戶請求
3.6.1 處理方法的返回值
3.6.2 獲取URI和參數(shù)
3.6.3 獲取HTTP頭部
3.6.4 獲取HTTP包體
3.7 發(fā)送響應(yīng)
3.7.1 發(fā)送HTTP頭部
3.7.2 將內(nèi)存中的字符串作為包體發(fā)送
3.7.3 經(jīng)典的"Hello World"示例
3.8 將磁盤文件作為包體發(fā)送
3.8.1 如何發(fā)送磁盤中的文件
3.8.2 清理文件句柄
3.8.3 支持用戶多線程下載和斷點續(xù)傳
3.9 用C++語言編寫HTTP模塊
3.9.1 編譯方式的修改
3.9.2 程序中的符號轉(zhuǎn)換
3.10 小結(jié)
第4章 配置、error日志和請求上下文
4.1 http配置項的使用場景
4.2 怎樣使用http配置
4.2.1 分配用于保存配置參數(shù)的數(shù)據(jù)結(jié)構(gòu)
4.2.2 設(shè)定配置項的解析方式
4.2.3 使用14種預(yù)設(shè)方法解析配置項
4.2.4 自定義配置項處理方法
4.2.5 合并配置項
4.3 HTTP配置模型
4.3.1 解析HTTP配置的流程
4.3.2 HTTP配置模型的內(nèi)存布局
4.3.3 如何合并配置項
4.3.4 預(yù)設(shè)配置項處理方法的工作原理
4.4 error日志的用法
4.5 請求的上下文
4.5.1 上下文與全異步Web服務(wù)器的關(guān)系
4.5.2 如何使用HTTP上下文
4.5.3 HTTP框架如何維護(hù)上下文結(jié)構(gòu)
4.6 小結(jié)
第5章 訪問第三方服務(wù)
5.1 upstream的使用方式
5.1.1 ngx_http_upstream_t結(jié)構(gòu)體
5.1.2 設(shè)置upstream的限制性參數(shù)
5.1.3 設(shè)置需要訪問的第三方服務(wù)器地址
5.1.4 設(shè)置回調(diào)方法
5.1.5 如何啟動upstream機(jī)制
5.2 回調(diào)方法的執(zhí)行場景
5.2.1 create_request回調(diào)方法
5.2.2 reinit_request回調(diào)方法
5.2.3 finalize_request回調(diào)方法
5.2.4 process_header回調(diào)方法
5.2.5 rewrite_redirect回調(diào)方法
5.2.6 input_filter_init與input_filter回調(diào)方法
5.3 使用upstream的示例
5.3.1 upstream的各種配置參數(shù)
5.3.2 請求上下文
5.3.3 在create_request方法中構(gòu)造請求
5.3.4 在process_header方法中解析包頭
5.3.5 在finalize_request方法中釋放資源
5.3.6 在ngx_http_mytest_handler方法中啟動upstream
5.4 subrequest的使用方式
5.4.1 配置子請求的處理方式
5.4.2 實現(xiàn)子請求處理完畢時的回調(diào)方法
5.4.3 處理父請求被重新激活后的回調(diào)方法
5.4.4 啟動subrequest子請求
5.5 subrequest執(zhí)行過程中的主要場景
5.5.1 如何啟動subrequest
5.5.2 如何轉(zhuǎn)發(fā)多個子請求的響應(yīng)包體
5.5.3 子請求如何激活父請求
5.6 subrequest使用的例子
5.6.1 配置文件中子請求的設(shè)置
5.6.2 請求上下文
5.6.3 子請求結(jié)束時的處理方法
5.6.4 父請求的回調(diào)方法
5.6.5 啟動subrequest
5.7 小結(jié)
第6章 開發(fā)一個簡單的HTTP過濾模塊
6.1 過濾模塊的意義
6.2 過濾模塊的調(diào)用順序
6.2.1 過濾鏈表是如何構(gòu)成的
6.2.2 過濾鏈表的順序
6.2.3 官方默認(rèn)HTTP過濾模塊的功能簡介
6.3 HTTP過濾模塊的開發(fā)步驟
6.4 HTTP過濾模塊的簡單例子
6.4.1 如何編寫config文件
6.4.2 配置項和上下文
6.4.3 定義HTTP過濾模塊
6.4.4 初始化HTTP過濾模塊
6.4.5 處理請求中的HTTP頭部
6.4.6 處理請求中的HTTP包體
6.5 小結(jié)
第7章 Nginx提供的高級數(shù)據(jù)結(jié)構(gòu)
7.1 Nginx提供的高級數(shù)據(jù)結(jié)構(gòu)概述
7.2 ngx_queue_t雙向鏈表
7.2.1 為什么設(shè)計ngx_queue_t雙向鏈表
7.2.2 雙向鏈表的使用方法
7.2.3 使用雙向鏈表排序的例子
7.2.4 雙向鏈表是如何實現(xiàn)的
7.3 ngx_array_t動態(tài)數(shù)組
7.3.1 為什么設(shè)計ngx_array_t動態(tài)數(shù)組
7.3.2 動態(tài)數(shù)組的使用方法
7.3.3 使用動態(tài)數(shù)組的例子
7.3.4 動態(tài)數(shù)組的擴(kuò)容方式
7.4 ngx_list_t單向鏈表
7.5 ngx_rbtree_t紅黑樹
7.5.1 為什么設(shè)計ngx_rbtree_t紅黑樹
7.5.2 紅黑樹的特性
7.5.3 紅黑樹的使用方法
7.5.4 使用紅黑樹的簡單例子
7.5.5 如何自定義添加成員方法
7.6 ngx_radix_tree_t基數(shù)樹
7.6.1 ngx_radix_tree_t基數(shù)樹的原理
7.6.2 基數(shù)樹的使用方法
7.6.3 使用基數(shù)樹的例子
7.7 支持通配符的散列表
7.7.1 ngx_hash_t基本散列表
7.7.2 支持通配符的散列表
7.7.3 帶通配符散列表的使用例子
7.8 小結(jié)
第三部分 深入Nginx
第8章 Nginx基礎(chǔ)架構(gòu)
8.1 Web服務(wù)器設(shè)計中的關(guān)鍵約束
8.2 Nginx的架構(gòu)設(shè)計
8.2.1 優(yōu)秀的模塊化設(shè)計
8.2.2 事件驅(qū)動架構(gòu)
8.2.3 請求的多階段異步處理
8.2.4 管理進(jìn)程、多工作進(jìn)程設(shè)計
8.2.5 平臺無關(guān)的代碼實現(xiàn)
8.2.6 內(nèi)存池的設(shè)計
8.2.7 使用統(tǒng)一管道過濾器模式的HTTP過濾模塊
8.2.8 其他一些用戶模塊
8.3 Nginx框架中的核心結(jié)構(gòu)體ngx_cycle_t
8.3.1 ngx_listening_t結(jié)構(gòu)體
8.3.2 ngx_cycle_t結(jié)構(gòu)體
8.3.3 ngx_cycle_t支持的方法
8.4 Nginx啟動時框架的處理流程
8.5 worker進(jìn)程是如何工作的
8.6 master進(jìn)程是如何工作的
8.7 小結(jié)
第9章 事件模塊
9.1 事件處理框架概述
9.2 Nginx事件的定義
9.3 Nginx連接的定義
9.3.1 被動連接
9.3.2 主動連接
9.3.3 ngx_connection_t連接池
9.4 ngx_events_module核心模塊
9.4.1 如何管理所有事件模塊的配置項
9.4.2 管理事件模塊
9.5 ngx_event_core_module事件模塊
9.6 epoll事件驅(qū)動模塊
9.6.1 epoll的原理和用法
9.6.2 如何使用epoll
9.6.3 ngx_epoll_module模塊的實現(xiàn)
9.7 定時器事件
9.7.1 緩存時間的管理
9.7.2 緩存時間的精度
9.7.3 定時器的實現(xiàn)
9.8 事件驅(qū)動框架的處理流程
9.8.1 如何建立新連接
9.8.2 如何解決"驚群"問題
9.8.3 如何實現(xiàn)負(fù)載均衡
9.8.4 post事件隊列
9.8.5 ngx_process_events_and_timers流程
9.9 文件的異步I/O
9.9.1 Linux內(nèi)核提供的文件異步I/O
9.9.2 ngx_epoll_module模塊中實現(xiàn)的針對文件的異步I/O
9.10 小結(jié)
第10章 HTTP框架的初始化
10.1 HTTP框架概述
10.2 管理HTTP模塊的配置項
10.2.1 管理main級別下的配置項
10.2.2 管理server級別下的配置項
10.2.3 管理location級別下的配置項
10.2.4 不同級別配置項的合并
10.3 監(jiān)聽端口的管理
10.4 server的快速檢索
10.5 location的快速檢索
10.6 HTTP請求的11個處理階段
10.6.1 HTTP處理階段的普適規(guī)則
10.6.2 NGX_HTTP_POST_READ_PHASE階段
10.6.3 NGX_HTTP_SERVER_REWRITE_PHASE階段
10.6.4 NGX_HTTP_FIND_CONFIG_PHASE階段
10.6.5 NGX_HTTP_REWRITE_PHASE階段
10.6.6 NGX_HTTP_POST_REWRITE_PHASE階段
10.6.7 NGX_HTTP_PREACCESS_PHASE階段
10.6.8 NGX_HTTP_ACCESS_PHASE階段
10.6.9 NGX_HTTP_POST_ACCESS_PHASE階段
10.6.10 NGX_HTTP_TRY_FILES_PHASE階段
10.6.11 NGX_HTTP_CONTENT_PHASE階段
10.6.12 NGX_HTTP_LOG_PHASE階段
10.7 HTTP框架的初始化流程
10.8 小結(jié)
第11章 HTTP框架的執(zhí)行流程
11.1 HTTP框架執(zhí)行流程概述
11.2 新連接建立時的行為
11.3 第一次可讀事件的處理
11.4 接收HTTP請求行
11.5 接收HTTP頭部
11.6 處理HTTP請求
11.6.1 ngx_http_core_generic_phase
11.6.2 ngx_http_core_rewrite_phase
11.6.3 ngx_http_core_access_phase
11.6.4 ngx_http_core_content_phase
11.7 subrequest與post請求
11.8 處理HTTP包體
11.8.1 接收包體
11.8.2 放棄接收包體
11.9 發(fā)送HTTP響應(yīng)
11.9.1 ngx_http_send_header
11.9.2 ngx_http_output_filter
11.9.3 ngx_http_writer
11.10 結(jié)束HTTP請求
11.10.1 ngx_http_close_connection
11.10.2 ngx_http_free_request
11.10.3 ngx_http_close_request
11.10.4 ngx_http_finalize_connection
11.10.5 ngx_http_terminate_request
11.10.6 ngx_http_finalize_request
11.11 小結(jié)
第12章 upstream機(jī)制的設(shè)計與實現(xiàn)
12.1 upstream機(jī)制概述
12.1.1 設(shè)計目的
12.1.2 ngx_http_upstream_t數(shù)據(jù)結(jié)構(gòu)的意義
12.1.3 ngx_http_upstream_conf_t配置結(jié)構(gòu)體
12.2 啟動upstream
12.3 與上游服務(wù)器建立連接
12.4 發(fā)送請求到上游服務(wù)器
12.5 接收上游服務(wù)器的響應(yīng)頭部
12.5.1 應(yīng)用層協(xié)議的兩段劃分方式
12.5.2 處理包體的3種方式
12.5.3 接收響應(yīng)頭部的流程
12.6 不轉(zhuǎn)發(fā)響應(yīng)時的處理流程
12.6.1 input_filter方法的設(shè)計
12.6.2 默認(rèn)的input_filter方法
12.6.3 接收包體的流程
12.7 以下游網(wǎng)速優(yōu)先來轉(zhuǎn)發(fā)響應(yīng)
12.7.1 轉(zhuǎn)發(fā)響應(yīng)的包頭
12.7.2 轉(zhuǎn)發(fā)響應(yīng)的包體
12.8 以上游網(wǎng)速優(yōu)先來轉(zhuǎn)發(fā)響應(yīng)
12.8.1 ngx_event_pipe_t結(jié)構(gòu)體的意義
12.8.2 轉(zhuǎn)發(fā)響應(yīng)的包頭
12.8.3 轉(zhuǎn)發(fā)響應(yīng)的包體
12.8.4 ngx_event_pipe_read_upstream方法
12.8.5 ngx_event_pipe_write_to_downstream方法
12.9 結(jié)束upstream請求
12.10 小結(jié)
第13章 郵件代理模塊
13.1 郵件代理服務(wù)器的功能
13.2 郵件模塊的處理框架
13.2.1 一個請求的8個獨立處理階段
13.2.2 郵件類模塊的定義
13.2.3 郵件框架的初始化
13.3 初始化請求
13.3.1 描述郵件請求的ngx_mail_session_t結(jié)構(gòu)體
13.3.2 初始化郵件請求的流程
13.4 接收并解析客戶端請求
13.5 郵件認(rèn)證
13.5.1 ngx_mail_auth_http_ctx_t結(jié)構(gòu)體
13.5.2 與認(rèn)證服務(wù)器建立連接
13.5.3 發(fā)送請求到認(rèn)證服務(wù)器
13.5.4 接收并解析響應(yīng)
13.6 與上游郵件服務(wù)器間的認(rèn)證交互
13.6.1 ngx_mail_proxy_ctx_t結(jié)構(gòu)體
13.6.2 向上游郵件服務(wù)器發(fā)起連接
13.6.3 與郵件服務(wù)器認(rèn)證交互的過程
13.7 透傳上游郵件服務(wù)器與客戶端間的流
13.8 小結(jié)
第14章 進(jìn)程間的通信機(jī)制
14.1 概述
14.2 共享內(nèi)存
14.3 原子操作
14.3.1 不支持原子庫下的原子操作
14.3.2 x86架構(gòu)下的原子操作
14.3.3 自旋鎖
14.4 Nginx頻道
14.5 信號
14.6 信號量
14.7 文件鎖
14.8 互斥鎖
14.8.1 文件鎖實現(xiàn)的ngx_shmtx_t鎖
14.8.2 原子變量實現(xiàn)的ngx_shmtx_t鎖
14.9 小結(jié)

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) rgspecialties.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號