《決戰Nginx系統卷》是2012年出版的圖書,作者是陶利軍。
基本介紹
- 書名:決戰Nginx系統卷
- 作者:陶利軍
- ISBN:9787302287841
- 頁數:662
- 定價:79.00元
- 出版時間:2012-6
- 副標題:高性能Web伺服器詳解與運維
內容簡介,作者簡介,目錄,
內容簡介
《決戰Nginx系統卷:高性能Web伺服器詳解與運維》內容簡介:在這個點擊率就是生命的時代,高可用是不可少的。《決戰Nginx系統卷:高性能Web伺服器詳解與運維》完整講述了Nginx伺服器的各種技術細節以及安裝、部署、運維等方面的內容。第一部分首先講述了Nginx伺服器的功能、模組管理和進程管理,然後講述Nginx如何處理請求,在這個基礎之上再認識Nginx提供的伺服器的名字,Nginx伺服器最大的焦點在於高並發和反向代理,在不多卻足夠使用的模組下實現了更多的功能。
在第二部分中,通過具體使用實例講述了Nginx的模組(包括官方模組和第三方模組),並詳細介紹了充分使用Nginx的方式方法。同時在這裡使用了Heartbeat服務實現Nginx伺服器的高可用。
最後一部分是關於Nginx使用快取技術的方法,共列舉了Nginx使用的五大快取,特別是廣泛使用的代理快取、Memcached和Varnish,另外對於Memcached伺服器的使用貫穿了整套書。在本書中著重講述了它的協定、原理和使用,而在本書姊妹篇中則通過不同語言的客戶端對Memcached伺服器實現具體使用。
《決戰Nginx系統卷:高性能Web伺服器詳解與運維》適用於廣大的Linux愛好者、具有一定Linux基礎的系統管理員、Linux下的Web伺服器管理員、Linux伺服器下動態語言開發人員、Nginx伺服器管理員、培訓中心師生、運維人員以及一切應該了解和使用Nginx的用戶。
作者簡介
陶利軍,網際網路行業高端低調人士,專注於Linux平台下開源產品的研究和推廣,運維構架(服務搭建、集群及高可用),網路安全評估,分散式存儲等。
目錄
第1部分 Nginx伺服器
第1章 Nginx的功能
1.1 功能描述
1.1.1 基本HTTP功能
1.1.2 其他HTTP功能
1.1.3 郵件代理伺服器功能
1.1.4 架構和可擴展性
1.1.5 被測試的系統和平台
1.2 伺服器的類型
1.3 認識Nginx伺服器的基本模組
1.3.1 Nginx的核心模組
1.3.2 Nginx的事件模組
1.3.3 Nginx的HTTP核心模組
第2章 Nginx的模組管理和進程管理
2.1 模組管理
2.1.1 從源碼看模組
2.1.2 選擇使用Nginx的模組
2.1.3 Nginx使用第三方模組
2.2 進程管理
2.2.1 master進程和worker進程
2.2.2 關於worker數目的設定
2.3 針對Nginx對Linux系統的最佳化
2.3.1 關閉系統中不需要的服務
2.3.2 最佳化寫磁碟操作
2.3.3 最佳化資源限制
2.3.4 最佳化核心TCP選項
2.4 最佳化Nginx伺服器
2.4.1 關閉訪問日誌
2.4.2 使用epoll
2.4.3 Nginx伺服器配置最佳化
第3章 Nginx如何處理一個請求
3.1 IP、域名部分的處理
3.1.1 基於名字的虛擬主機
3.1.2 阻止處理對不明確主機名的請求
3.1.3 基於IP和域名的虛擬域名伺服器處理請求
3.2 URI部分的處理
3.2.1 實例
3.2.2 分析
第4章 伺服器名字
4.1 通配符名字
4.2 正則表達式名字
4.3 其他不同種類的名字
4.4 名字最佳化
4.5 兼容性
4.6 對伺服器名字的擴展
4.7 基於目錄名的域名訪問
4.7.1 正則表達式處於主機名字的位置上
4.7.2 正則表達式處於域名的位置上
4.8 關於$1、$2…的使用
第5章 協助用戶操作Nginx的工具
5.1 工具1——nginx.vim
5.1.1 下載與安裝
5.1.2 使用
5.2 工具2——eperusio-nginx_ensit
5.2.1 下載與安裝
5.2.2 相關命令
5.2.3 實例
5.3 工具3——htpasswd.py
5.3.1 下載檔案
5.3.2 命令的使用方法
5.4 工具4——Nginx啟動腳本
第6章 5xx錯誤及處理
6.1500內部伺服器錯誤
6.1.1 問題分析
6.1.2 問題解決
6.2502問題—— 502 bad gateway
6.3504問題—— 504 gateway time-out
第7章 使用TCMalloc最佳化Nginx
7.1 相關安裝
7.2 配置示例
7.3 指令
7.4 使用實例
第8章 PCRE正則表達式
8.1 安裝PCRE
8.2 命令
8.2.1 pcre-config命令
8.2.2 pcretest命令
8.3 man目錄
8.4 Nginx與正則表達式
8.4.1 正則表達式支持UTF-8
8.4.2 Nginx使用正則表達式
第9章 Nginx高可用的實現
9.1 安裝Heartbeat
9.1.1 下載安裝glue
9.1.2 下載安裝Heartbeat
9.1.3 安裝agents
9.2 配置Heartbeat
9.2.1 ha.cf檔案
9.2.2 haresources檔案
9.2.3 authkeys檔案
9.3 啟動Heartbeat
9.3.1 環境部署
9.3.2 啟動主Heartbeat
9.3.3 啟動備用Heartbeat
9.4 測試Heartbeat
9.4.1 宕掉主節點
9.4.2 重新啟動主節點
第10章 10個QA
10.1 什麼是Nginx
10.2 Nginx可以安裝在哪些作業系統下
10.3 Nginx在Windows下的性能如何
10.4 Nginx與Apache比較有哪些優點
10.5 Nginx解決了C10k問題
10.6 從Nginx接收客戶端請求處理的角度來說,它與Apache有何不同
10.7 安裝完成Nginx後,如何查看Nginx的版本
10.8 安裝完成Nginx後,如何查看configure時的配置
10.9 啟動Nginx後,能不能看到Nginx當前都支持哪些模組
10.10 Https僅能用在指定的目錄下嗎
第2部分 Nginx伺服器的功能模組
第11章 限 制 流 量
11.1 指令
11.2 實例配置
第12章 限制用戶並發連線數
12.1 示例配置
12.2 指令
12.3 配置實例
第13章 修改或隱藏Nginx的版本號
13.1 隱藏版本號
13.2 修改版本號
第14章 配置FLV伺服器
14.1 示例配置
14.2 指令
14.3 配置實例
第15章 Nginx的訪問控制
15.1 配置示例
15.2 指令
15.3 使用實例
第16章 提供FTP下載
16.1 配置示例
16.2 指令
16.3 使用實例
第17章 Nginx與編碼
17.1 檔案和檔案名稱的編碼
17.2 使用convmv
17.3 使用enca
17.4 字元集設定模組
第18章 網頁壓縮傳輸
18.1 HttpGzipModule
18.2 HttpGzipStaticModule
第19章 控制Nginx如何記錄日誌
第20章 map模組的使用
第21章 Nginx預防套用層DDoS攻擊
21.1 Limit request模組
21.2 訪問測試
21.2.1 限制連線數
21.2.2 未限制連線數
第22章 為Nginx添加、清除或改寫回響
22.1 HttpHeadersModule
22.2 ngx_headers_more
第23章 重寫URI
第24章 Nginx與伺服器端包含
24.1 ssi指令
24.2 使用實例
第25章 Nginx與X-Sendfile
25.1 處理流程
25.2 特殊頭
25.3 使用實例
第26章 在Nginx的回響體之前或之後添加內容
第27章 Nginx與訪問者的地理信息
第28章 Nginx的圖像處理
第29章 location中隨機顯示檔案
第30章 後台Nginx伺服器記錄原始客戶端的IP位址
第31章 解決防盜鏈
31.1 使用Referer模組
31.2 使用AccessKey模組
31.3 使用SecureLink模組
第32章 Nginx提供HTTPS服務
32.1 兼容性
32.2 安裝SSL服務
32.3 通配符證書
32.4 變數 291
32.5 非標準的錯誤代碼
32.6 使用舉例
32.6.1 單向認證
32.6.2 更新Nginx配置
32.6.3 訪問測試
32.6.4 雙向認證
32.6.5 創建相關目錄
32.7 HTTPS 伺服器最佳化
第33章 監控Nginx的工作狀態
第34章 使用empty_gif
第35章 Nginx實現對回響體內容的替換
第36章 Nginx的WebDAV
第37章 Nginx的Xslt模組
第38章 Nginx的基本認證方式
38.1 生成密碼
38.2 添加配置
38.3 訪問測試
第39章 Nginx的cookie
第40章 Nginx基於客戶端請求頭的訪問分
第41章 通過Upstream模組使得Nginx實現後台伺服器集群
第42章 根據瀏覽器選擇主頁
第43章 關於Nginx提供下載.ipa或.apk檔案的處理方法
第44章 SCGI
44.1 被傳遞給SCGI伺服器的參數
44.2 實例1:Perl語言的套用
44.3 實例2:Python語言的套用
44.4 在Nginx中使用Etag
第45章 Expires與ETag
45.1 安裝nginx-static-etags模組
45.2 安裝nginx-dynamic-etags模組
45.3 四個頭的區別與聯繫
第46章 使用upstream_keepalive模組實現keep-live
第47章 後台伺服器的健康檢測
第48章 使用sticky模組實現貼上性會話
第49章 Nginx對後台伺服器實現“公平”訪問
第50章 Nginx使用redis資料庫
50.1 安裝redis模組
50.2 安裝redis2模組
50.3 關於redis
第51章 Nginx訪問MongoDB
51.1 安裝nginx-gridfs模組
51.2 關於MongoDB
第52章 Nginx訪問Mogilefs
第3部分 Nginx與快取
第53章 快取技術——proxy_cache
5.31 了解cache_purge模組
53.2 設定Nginx的配置檔案
53.3 訪問測試
53.4 手動清除快取
第54章 快取技術——proxy_store
54.1 設定Nginx的配置檔案
54.2 訪問測試
54.3 手動清除快取
第55章 快取技術——Memcached
55.1 Memcached伺服器
55.2 下載並安裝libevent庫
55.3 下載並安裝Memcached
55.4 Memcached的其他工具
55.4.1 damemtop
55.4.2 memcached-init
55.4.3 start-memcached
55.4.4 memcached.sysv
55.4.5 memcached-tool
55.5 查看Memcached服務的運行情況
55.6 伺服器的運行情況——詳細了解Memcached的協定
55.6.1 通信協定
55.6.2 鍵(Key)
55.6.3 命令
55.6.4 過期時間
55.6.5 錯誤字元串
55.6.6 存儲數據的命令
55.6.7 獲取數據的命令
55.6.8 刪除數據的命令
55.6.9 增加/減少數據的命令
55.6.10 查詢存儲狀態的命令
55.6.11 多方面統計命令
55.6.12 條目統計命令
55.6.13 其他命令
55.6.12 UDP協定
55.7 Nginx的Memcached模組
55.8 Memcached的客戶端
55.9 libmemcached
55.9.1 libmemcached的安裝
55.9.2 命令
55.9.3 函式
第56章 快取技術——NCache
56.1 NCache工作層示意圖
56.2 請求邏輯圖
56.3 安裝NCache
56.4 配置檔案
第57章 快取技術——Varnish
57.1 了解Varnish
57.2 Varnish的訪問部署
57.2.1 第一種部署方案:Varnish提供80訪問
57.2.2 第二種部署方案:Varnish位於Nginx之後只提供快取
57.3 Nginx與Varnish的結合
57.4 針對Linux系統設定
57.4.1 Linux最佳化核心
57.4.2 最佳化系統資源使用
57.5 使用Varnish
57.6 快取大小的設定
57.7 VCL配置
57.8 Varnish的啟動與停止
57.9 Varnish的訪問日誌
57.10 守護進程varnishd
57.11 Varnish提供的命令
57.12 手動清除快取
57.12.1 基於命令行方式清除Varnish快取
57.12.2 基於應用程式方式清除Varnish快取
57.13 VCL語言
57.13.1 默認配置檔案
57.13.2 操作符
57.13.3 數據結構
57.13.4 變數
57.13.5 ACL指令
57.13.6 Varnish的函式
57.13.7 子程式
57.13.8 ESI
57.14 grace模式和saint模式
57.14.1 grace模式
57.14.2 saint模式
57.14.3 grace模式和 saint模式的局限性
第1章 Nginx的功能
1.1 功能描述
1.1.1 基本HTTP功能
1.1.2 其他HTTP功能
1.1.3 郵件代理伺服器功能
1.1.4 架構和可擴展性
1.1.5 被測試的系統和平台
1.2 伺服器的類型
1.3 認識Nginx伺服器的基本模組
1.3.1 Nginx的核心模組
1.3.2 Nginx的事件模組
1.3.3 Nginx的HTTP核心模組
第2章 Nginx的模組管理和進程管理
2.1 模組管理
2.1.1 從源碼看模組
2.1.2 選擇使用Nginx的模組
2.1.3 Nginx使用第三方模組
2.2 進程管理
2.2.1 master進程和worker進程
2.2.2 關於worker數目的設定
2.3 針對Nginx對Linux系統的最佳化
2.3.1 關閉系統中不需要的服務
2.3.2 最佳化寫磁碟操作
2.3.3 最佳化資源限制
2.3.4 最佳化核心TCP選項
2.4 最佳化Nginx伺服器
2.4.1 關閉訪問日誌
2.4.2 使用epoll
2.4.3 Nginx伺服器配置最佳化
第3章 Nginx如何處理一個請求
3.1 IP、域名部分的處理
3.1.1 基於名字的虛擬主機
3.1.2 阻止處理對不明確主機名的請求
3.1.3 基於IP和域名的虛擬域名伺服器處理請求
3.2 URI部分的處理
3.2.1 實例
3.2.2 分析
第4章 伺服器名字
4.1 通配符名字
4.2 正則表達式名字
4.3 其他不同種類的名字
4.4 名字最佳化
4.5 兼容性
4.6 對伺服器名字的擴展
4.7 基於目錄名的域名訪問
4.7.1 正則表達式處於主機名字的位置上
4.7.2 正則表達式處於域名的位置上
4.8 關於$1、$2…的使用
第5章 協助用戶操作Nginx的工具
5.1 工具1——nginx.vim
5.1.1 下載與安裝
5.1.2 使用
5.2 工具2——eperusio-nginx_ensit
5.2.1 下載與安裝
5.2.2 相關命令
5.2.3 實例
5.3 工具3——htpasswd.py
5.3.1 下載檔案
5.3.2 命令的使用方法
5.4 工具4——Nginx啟動腳本
第6章 5xx錯誤及處理
6.1500內部伺服器錯誤
6.1.1 問題分析
6.1.2 問題解決
6.2502問題—— 502 bad gateway
6.3504問題—— 504 gateway time-out
第7章 使用TCMalloc最佳化Nginx
7.1 相關安裝
7.2 配置示例
7.3 指令
7.4 使用實例
第8章 PCRE正則表達式
8.1 安裝PCRE
8.2 命令
8.2.1 pcre-config命令
8.2.2 pcretest命令
8.3 man目錄
8.4 Nginx與正則表達式
8.4.1 正則表達式支持UTF-8
8.4.2 Nginx使用正則表達式
第9章 Nginx高可用的實現
9.1 安裝Heartbeat
9.1.1 下載安裝glue
9.1.2 下載安裝Heartbeat
9.1.3 安裝agents
9.2 配置Heartbeat
9.2.1 ha.cf檔案
9.2.2 haresources檔案
9.2.3 authkeys檔案
9.3 啟動Heartbeat
9.3.1 環境部署
9.3.2 啟動主Heartbeat
9.3.3 啟動備用Heartbeat
9.4 測試Heartbeat
9.4.1 宕掉主節點
9.4.2 重新啟動主節點
第10章 10個QA
10.1 什麼是Nginx
10.2 Nginx可以安裝在哪些作業系統下
10.3 Nginx在Windows下的性能如何
10.4 Nginx與Apache比較有哪些優點
10.5 Nginx解決了C10k問題
10.6 從Nginx接收客戶端請求處理的角度來說,它與Apache有何不同
10.7 安裝完成Nginx後,如何查看Nginx的版本
10.8 安裝完成Nginx後,如何查看configure時的配置
10.9 啟動Nginx後,能不能看到Nginx當前都支持哪些模組
10.10 Https僅能用在指定的目錄下嗎
第2部分 Nginx伺服器的功能模組
第11章 限 制 流 量
11.1 指令
11.2 實例配置
第12章 限制用戶並發連線數
12.1 示例配置
12.2 指令
12.3 配置實例
第13章 修改或隱藏Nginx的版本號
13.1 隱藏版本號
13.2 修改版本號
第14章 配置FLV伺服器
14.1 示例配置
14.2 指令
14.3 配置實例
第15章 Nginx的訪問控制
15.1 配置示例
15.2 指令
15.3 使用實例
第16章 提供FTP下載
16.1 配置示例
16.2 指令
16.3 使用實例
第17章 Nginx與編碼
17.1 檔案和檔案名稱的編碼
17.2 使用convmv
17.3 使用enca
17.4 字元集設定模組
第18章 網頁壓縮傳輸
18.1 HttpGzipModule
18.2 HttpGzipStaticModule
第19章 控制Nginx如何記錄日誌
第20章 map模組的使用
第21章 Nginx預防套用層DDoS攻擊
21.1 Limit request模組
21.2 訪問測試
21.2.1 限制連線數
21.2.2 未限制連線數
第22章 為Nginx添加、清除或改寫回響
22.1 HttpHeadersModule
22.2 ngx_headers_more
第23章 重寫URI
第24章 Nginx與伺服器端包含
24.1 ssi指令
24.2 使用實例
第25章 Nginx與X-Sendfile
25.1 處理流程
25.2 特殊頭
25.3 使用實例
第26章 在Nginx的回響體之前或之後添加內容
第27章 Nginx與訪問者的地理信息
第28章 Nginx的圖像處理
第29章 location中隨機顯示檔案
第30章 後台Nginx伺服器記錄原始客戶端的IP位址
第31章 解決防盜鏈
31.1 使用Referer模組
31.2 使用AccessKey模組
31.3 使用SecureLink模組
第32章 Nginx提供HTTPS服務
32.1 兼容性
32.2 安裝SSL服務
32.3 通配符證書
32.4 變數 291
32.5 非標準的錯誤代碼
32.6 使用舉例
32.6.1 單向認證
32.6.2 更新Nginx配置
32.6.3 訪問測試
32.6.4 雙向認證
32.6.5 創建相關目錄
32.7 HTTPS 伺服器最佳化
第33章 監控Nginx的工作狀態
第34章 使用empty_gif
第35章 Nginx實現對回響體內容的替換
第36章 Nginx的WebDAV
第37章 Nginx的Xslt模組
第38章 Nginx的基本認證方式
38.1 生成密碼
38.2 添加配置
38.3 訪問測試
第39章 Nginx的cookie
第40章 Nginx基於客戶端請求頭的訪問分
第41章 通過Upstream模組使得Nginx實現後台伺服器集群
第42章 根據瀏覽器選擇主頁
第43章 關於Nginx提供下載.ipa或.apk檔案的處理方法
第44章 SCGI
44.1 被傳遞給SCGI伺服器的參數
44.2 實例1:Perl語言的套用
44.3 實例2:Python語言的套用
44.4 在Nginx中使用Etag
第45章 Expires與ETag
45.1 安裝nginx-static-etags模組
45.2 安裝nginx-dynamic-etags模組
45.3 四個頭的區別與聯繫
第46章 使用upstream_keepalive模組實現keep-live
第47章 後台伺服器的健康檢測
第48章 使用sticky模組實現貼上性會話
第49章 Nginx對後台伺服器實現“公平”訪問
第50章 Nginx使用redis資料庫
50.1 安裝redis模組
50.2 安裝redis2模組
50.3 關於redis
第51章 Nginx訪問MongoDB
51.1 安裝nginx-gridfs模組
51.2 關於MongoDB
第52章 Nginx訪問Mogilefs
第3部分 Nginx與快取
第53章 快取技術——proxy_cache
5.31 了解cache_purge模組
53.2 設定Nginx的配置檔案
53.3 訪問測試
53.4 手動清除快取
第54章 快取技術——proxy_store
54.1 設定Nginx的配置檔案
54.2 訪問測試
54.3 手動清除快取
第55章 快取技術——Memcached
55.1 Memcached伺服器
55.2 下載並安裝libevent庫
55.3 下載並安裝Memcached
55.4 Memcached的其他工具
55.4.1 damemtop
55.4.2 memcached-init
55.4.3 start-memcached
55.4.4 memcached.sysv
55.4.5 memcached-tool
55.5 查看Memcached服務的運行情況
55.6 伺服器的運行情況——詳細了解Memcached的協定
55.6.1 通信協定
55.6.2 鍵(Key)
55.6.3 命令
55.6.4 過期時間
55.6.5 錯誤字元串
55.6.6 存儲數據的命令
55.6.7 獲取數據的命令
55.6.8 刪除數據的命令
55.6.9 增加/減少數據的命令
55.6.10 查詢存儲狀態的命令
55.6.11 多方面統計命令
55.6.12 條目統計命令
55.6.13 其他命令
55.6.12 UDP協定
55.7 Nginx的Memcached模組
55.8 Memcached的客戶端
55.9 libmemcached
55.9.1 libmemcached的安裝
55.9.2 命令
55.9.3 函式
第56章 快取技術——NCache
56.1 NCache工作層示意圖
56.2 請求邏輯圖
56.3 安裝NCache
56.4 配置檔案
第57章 快取技術——Varnish
57.1 了解Varnish
57.2 Varnish的訪問部署
57.2.1 第一種部署方案:Varnish提供80訪問
57.2.2 第二種部署方案:Varnish位於Nginx之後只提供快取
57.3 Nginx與Varnish的結合
57.4 針對Linux系統設定
57.4.1 Linux最佳化核心
57.4.2 最佳化系統資源使用
57.5 使用Varnish
57.6 快取大小的設定
57.7 VCL配置
57.8 Varnish的啟動與停止
57.9 Varnish的訪問日誌
57.10 守護進程varnishd
57.11 Varnish提供的命令
57.12 手動清除快取
57.12.1 基於命令行方式清除Varnish快取
57.12.2 基於應用程式方式清除Varnish快取
57.13 VCL語言
57.13.1 默認配置檔案
57.13.2 操作符
57.13.3 數據結構
57.13.4 變數
57.13.5 ACL指令
57.13.6 Varnish的函式
57.13.7 子程式
57.13.8 ESI
57.14 grace模式和saint模式
57.14.1 grace模式
57.14.2 saint模式
57.14.3 grace模式和 saint模式的局限性