Nginx是一個高性能的輕量級Web伺服器,本書從配置檔案的角度出發,介紹了多種關於 Nginx配置檔案的技巧。本書以模組化風格寫成,幾乎每一章都是一個獨立的模組,讀者將能夠自由地在各個模組間切換閱讀。全書分兩部分,第一部分用8章內容介紹了安裝Nginx及第三方模組、配置指南、使用mail模組、Nginx作為反向代理、反向代理高級話題、Nginx Http伺服器、Nginx的開發以及故障排除技巧;第二部分用4個附錄的形式介紹了指令參考、Rewrite規則指南、Nginx社區以及Solaries系統下的網路調優。本書適合在安裝和配置伺服器方面有經驗的系統管理員或系統工程師,閱讀本書不需要任何Nginx使用經驗,想信這本書會幫助你更好地完成任務。
基本介紹
- 書名:精通Nginx
- 作者:[瑞士] 艾維利
- ISBN:978-7-115-38141-5
- 頁數:259
- 定價:49
- 出版社:人民郵電出版社
- 出版時間:2015-02
- 開本:16
目錄
第1章 安裝Nginx及第三方模組 1
1.1 使用包管理器安裝Nginx 2
1.1.1 CentOS 2
1.1.2 Debian 3
1.2 從原始碼安裝Nginx 3
1.2.1 準備編譯環境 4
1.2.2 從原始碼編譯 4
1.3 配置web或者mail伺服器 6
1.3.1 郵件代理的配置選項 6
1.3.2 指定路徑的配置選項 7
1.4 使用各種模組 8
1.5 查找並安裝第三方模組 11
1.6 組合在一起 12
1.7 總結 14
第2章 配置指南 15
2.1 基本配置格式 15
2.2 Nginx的全局配置參數 16
2.3 使用include檔案 17
2.4 Http的server部分 18
2.4.1 客戶端指令 18
2.4.2 檔案I/O指令 19
2.4.3 Hash指令 20
2.4.4 Socket指令 21
2.4.5 示例配置檔案 22
2.5 虛擬server部分 22
2.6 Locations——wheve,when,how 26
2.7 mail的server部分 28
2.8 完整的樣本配置檔案 30
2.9 總結 31
第3章 使用mail模組 33
3.1 基本代理服務 33
3.1.1 POP3服務 35
3.1.2 IMAP服務 36
3.1.3 SMTP服務 36
3.1.4 使用SSL/TLS 37
3.1.5 完整的mail示例 40
3.2 認證服務 42
3.3 與Memcached結合 49
3.4 解釋日誌檔案 52
3.5 作業系統的限制 54
3.6 總結 55
第4章 Nginx作為反向代理 57
4.1 反向代理簡介 58
4.1.1 代理模組 59
4.1.2 upstream模組 64
4.2 upstream伺服器的類型 67
4.2.1 單個upstream伺服器 67
4.2.2 多個upstream伺服器 69
4.2.3 非Http型upstream伺服器 70
4.3 將if配置轉換為一個更現代的解釋 72
4.4 使用錯誤檔案來處理upstream的問題 76
4.5 確定客戶端的真實IP位址 78
4.6 總結 78
第5章 反向代理高級話題 81
5.1 實現安全隔離 82
5.1.1 使用SSL對流量進行加密 82
5.1.2 使用SSL進行客戶端身份驗證 84
5.1.3 基於原始IP位址阻止流量 86
5.2 孤立應用程式的擴展 89
5.3 反向代理伺服器的性能調優 92
5.3.1 緩衝 92
5.3.2 快取 94
5.3.3 壓縮 100
5.4 總結 103
第6章 Nginx Http伺服器 105
6.1 Nginx的系統結構 106
6.2 Http的核心模組 106
6.2.1 server 107
6.2.2 日誌 108
6.2.3 檔案查找 111
6.2.4 名字解析 113
6.2.5 客戶端互動 115
6.3 使用limit指令防止濫用 117
6.4 約束訪問 121
6.5 流媒體檔案 126
6.6 預定義變數 127
6.7 使用Nginx和PHP-FPM 129
6.8 將Nginx和uWSGI連線在一起工作 141
6.9 總結 143
第7章 Nginx的開發 145
7.1 快取集成 145
7.1.1 應用程式沒有快取 146
7.1.2 使用資料庫快取 148
7.1.3 使用檔案做快取 150
7.2 動態修改內容 154
7.2.1 addition模組 154
7.2.2 sub模組 155
7.2.3 xslt模組 156
7.3 使用伺服器端包含SSI 157
7.4 在Nginx中的決策 159
7.5 創建安全連結 163
7.6 生成圖像 165
7.7 跟蹤網站的訪問者 169
7.8 防止意外的代碼執行 170
7.9 總結 171
第8章 故障排除技巧 173
8.1 分析日誌檔案 173
8.1.1 錯誤日誌檔案格式 174
8.1.2 錯誤日誌檔案條目實例 175
8.2 配置高級日誌記錄 178
8.2.1 調試日誌記錄 178
8.2.2 使用訪問日誌檔案進行調試 185
8.3 常見的配置錯誤 188
8.3.1使用if取代try_files 188
8.3.2 使用if作為主機名切換 189
8.3.3 不使用server部分的配置追求更好的效果 190
8.4 作業系統限制 192
8.4.1 檔案描述符限制 192
8.4.2 網路限制 194
8.5 性能問題 195
8.6 使用Stub Status模組 197
8.7 總結 198
附錄A 指令參考 199
附錄B Rewrite規則指南 241
B.1 介紹rewrite模組 241
創建新的rewrite規則 245
B.2 轉換Apache的重寫規則 247
B.2.1 規則 #1:使用try_files替代目錄和檔案存在性檢測 247
B.2.2 規則 #2:使用location替代匹配REQUEST_URI 247
B.2.3 規則 #3:使用server替代匹配R Http_HOST 248
B.2.4 規則 #4:變數檢查使用if替代RewriteCond 250
B.3 總結 251
附錄C Nginx的社區 253
C.1 郵件列表 253
C.2 IRC頻道 254
C.3 Web資源 254
C.4 撰寫好的bug報告 254
C.5 總結 255
附錄D Solaris系統下的網路調優 257