精通 Nginx, 2/e ( Mastering NGINX, 2/e) 精通Nginx 第2版

[瑞士] Dimitri Aivaliotis 艾維利

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

商品描述

Nginx是一個高性能的輕量級Web服務器,本書從配置文件的角度出發,介紹了多種關於Nginx配置的技巧。
本書以模塊化風格寫成,幾乎每一章都是一個獨立的模塊,讀者將能夠自由地在各個模塊間切換閱讀。全書分兩部分,第1部分用9章內容介紹了安裝Nginx及第三方模塊、配置向導、使用mail模塊、Nginx作為反向代理、Nginx Http服務器、Nginx的開發、在Nginx中集成Lua以及故障排除技巧;第二部分用4個附錄的形式介紹了指令參考、Rewrite規則指南、Nginx社區以及Solaris系統下的網絡調優。
本書適合在安裝和配置服務器方面有經驗的系統管理員或系統工程師,閱讀本書不需要任何Nginx使用經驗,相信這本書會幫助讀者更好地完成任務。

你將從本書中學到
●編譯適當的第三方模塊以滿足你的需要;
●編寫認證服務器以便使用郵件代理模塊;
●創建你自己的SSL證書加密連接;
●使用try_files解決文件存在性檢測;
●使用緩存和壓縮提高用戶交互;
●使用FastCGI模塊集成流行的PHP框架;
●構建有用的日誌配置;
●排除配置問題。

目錄大綱

第1章安裝Nginx及第三方模塊1 
1.1使用包管理器安裝Nginx 2 
1.1.1在Centos上安裝Nginx 2 
1.1.2在Debian上安裝Nginx 3 
1.2從源代碼安裝Nginx 3 
1.2.1準備編譯環境3 
1.2.2從源代碼編譯4 
1.2.3為Web或者Mail服務器配置Nginx 5 
1.2.4郵件代理的配置選項6 
1.2.5指定路徑的配置選項6 
1.3配置SSL支持7 
1.4禁用不再使用的模塊9 
1.5查找並安裝第三方模塊10 
1.6添加對Lua的支持11 
1.7組合在一起11 
1.8小結13 

第2章配置指南14 
2.1基本配置格式14 
2.2 Nginx全局配置參數15 
2.3使用include文件16 
2.4 HTTP的server部分17 
2.4.1客戶端指令17 
2.4.2文件I/O指令18 
2.4.3 Hash指令19 
2.4.4 Socket指令19 
2.4.5示例配置文件20 
2.5虛擬服務器部分20 
2.6 Locations— where,when,how 24 
2.7完整的示例配置文件26 
2.8小結27 

第3章使用mail模塊29 
3.1基本代理服務29 
3.1.1 mail的server配置部分30 
3.1.2 POP3服務32 
3.1.3 IMAP服務33 
3.1 .4 SM TP服務33 
3.1.5使用SSL/TLS 34 
3.1.6完整的mail示例37 
3.2認證服務38 
3.3與memcached結合46 
3.4解釋日誌文件48 
3.5操作系統限制50 
3.6小結51 

第4章Nginx作為反向代理52 
4.1反向代理簡介53 
4.2代理模塊54 
4.3帶有cookie的遺留應用程序57 
4.4 upstream模塊58 
4.5保持活動連接59 
4.6上游服務器的類型61 
4.7單個上游服務器61 
4.8多個上游服務器62 
4.9非HTTP型上游服務器63 
4.9.1 Memcached上游服務器63 
4.9.2 FastCGI上游服務器64 
4.9.3 SCGI上游服務器65 
4.9.4 uWSGI上游服務器65 
4.10負載均衡算法65 
4.11將if配置轉換為一個更現代的解釋66 
4.12使用錯誤文件處理上游服務器問題70 
4.13確定客戶端真實的IP地址72 
4.14小結72 

第5章反向代理高級話題73 
5.1安全隔離74 
5.1.1使用SSL對流量進行加密74 
5.1.2使用SSL進行客戶端身份驗證76 
5.1.3基於原始IP地址阻止流量78 
5.2孤立應用程序組件的擴展80 
5.3反向代 理服務器的性能調優83 
5.3.1緩衝數據84 
5.3.2緩存數據86 
5.3.3存儲數據90 
5.3.4壓縮數據91 
5.4小結94 

第6章Nginx HTTP服務器95 
6.1 Nginx的系統架構95 
6.2 HTTP核心模塊96 
6.2.1 server指令97 
6.2.2 Nginx中的日誌98 
6.2.3查找文件101 
6.2.4域名解析103 
6.2.5客戶端交互104 
6.3使用limit指令防止濫用106 
6.4約束訪問110 
6.5流媒體文件114 
6.6預定義變量115 
6.7 SPDY和HTTP/2 117 
6.8使用Nginx和PHP-FPM 118 
6.9一個Drupal的配置示例121 
6.9將Nginx和uWSGI結合一個Django的配置示例129 
6.10小結131 

第7章Nginx的開發133 
7.1集成緩存133 
7.1.1應用程序沒有緩存134 
7.1.2使用數據庫緩存135 
7.1.3使用文件系統做緩存138 
7.2動態修改內容141 
7.2.1使用addition模塊141 
7.2.2 sub模塊142 
7.2.3 xslt模塊143 
7.3使用服務器端包含SSI(Server Side Include) 144 
7.4 Nginx中的決策146 
7.5創建安全鏈接150 
7.6生成圖像152 
7.7跟踪網站訪問者155 
7.8防止 外代碼執行156 
7.9小結157 

第8章在Nginx中集成Lua 159 
8.1 ngx_lua模塊159 
8.2集成Lua 160 
8.3使用Lua記錄日誌163 
8.4小結163 

第9章故障排除技巧164 
9.1分析日誌文件164 
9.1.1錯誤日誌文件格式164 
9.1.2錯誤日誌文件條目實例166 
9.2配置高級日誌記錄168 
9.2.1調試日誌記錄169 
9.2.2在運行時切換二進制運行文件169 
9.2.3使用訪問日誌文件進行調試175 
9.3常見的配置錯誤177 
9.3.1使用if取代try_files 178 
9.3.2使用if作為主機名切換179 
9.3.3不使用server部分的配置追求更好的效果180 
9.4操作系統限制181 
9.4.1文件描述符限制181 
9.4.2網絡限制183 
9.5性能問題184 
9.6使用Stub Status模塊186 
9.7小結187 

附錄A指令參考189 
附錄B Rewrite規則指南224 
附錄C Nginx社區236 
附錄D Solaris系統下的網絡調優239