出版時間:2012-6 出版社:清華大學出版社 作者:陶利軍 頁數(shù):662 字數(shù):1153000
Tag標簽:無
內容概要
在這個點擊率就是生命的時代,高可用是不可少的。本書完整講述了Nginx服務器的各種技術細節(jié)以及安裝、部署、運維等方面的內容。
本書第一部分首先講述了Nginx服務器的功能、模塊管理和進程管理,然后講述Nginx如何處理請求,在這個基礎之上再認識Nginx提供的服務器的名字,Nginx服務器最大的焦點在于高并發(fā)和反向代理,在不多卻足夠使用的模塊下實現(xiàn)了更多的功能。
在第二部分中,通過具體使用實例講述了Nginx的模塊(包括官方模塊和第三方模塊),并詳細介紹了充分使用Nginx的方式方法。同時在這里使用了Heartbeat服務實現(xiàn)Nginx服務器的高可用。
本書的最后一部分是關于Nginx使用緩存技術的方法,共列舉了Nginx使用的五大緩存,特別是廣泛使用的代理緩存、Memcached和Varnish,另外對于Memcached服務器的使用貫穿了整套書。在本書中著重講述了它的協(xié)議、原理和使用,而在本書姊妹篇中則通過不同語言的客戶端對Memcached服務器實現(xiàn)具體使用。
本書適用于廣大的Linux愛好者、具有一定Linux基礎的系統(tǒng)管理員、Linux下的Web服務器管理員、Linux服務器下動態(tài)語言開發(fā)人員、Nginx服務器管理員、培訓中心師生、運維人員以及一切應該了解和使用Nginx的用戶。
作者簡介
陶利軍,互聯(lián)網行業(yè)高端低調人士,專注于Linux平臺下開源產品的研究和推廣,運維構架(服務搭建、集群及高可用),網絡安全評估,分布式存儲等。
書籍目錄
目 錄
第1部分 Nginx服務器
第1章 Nginx的功能
1.1 功能描述
1.1.1 基本HTTP功能
1.1.2 其他HTTP功能
1.1.3 郵件代理服務器功能
1.1.4 架構和可擴展性
1.1.5 被測試的系統(tǒng)和平臺
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數(shù)目的設置
2.3 針對Nginx對Linux系統(tǒng)的優(yōu)化
2.3.1 關閉系統(tǒng)中不需要的服務
2.3.2 優(yōu)化寫磁盤操作
2.3.3 優(yōu)化資源限制
2.3.4 優(yōu)化內核TCP選項
2.4 優(yōu)化Nginx服務器
2.4.1 關閉訪問日志
2.4.2 使用epoll
2.4.3 Nginx服務器配置優(yōu)化
第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 名字優(yōu)化
4.5 兼容性
4.6 對服務器名字的擴展
4.7 基于目錄名的域名訪問
4.7.1 正則表達式處于主機名字
的位置上
4.7.2 正則表達式處于域名
的位置上
4.8 關于$1、$2…的使用
第5章 協(xié)助用戶操作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.1 500內部服務器錯誤
6.1.1 問題分析
6.1.2 問題解決
6.2 502問題—— 502 bad gateway
6.3 504問題—— 504 gateway
time-out
第7章 使用TCMalloc優(yōu)化
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高可用的實現(xiàn)
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 環(huán)境部署
9.3.2 啟動主Heartbeat
9.3.3 啟動備用Heartbeat
9.4 測試Heartbeat
9.4.1 宕掉主節(jié)點
9.4.2 重新啟動主節(jié)點
第10章 10個QA
10.1 什么是Nginx
10.2 Nginx可以安裝在哪些
操作系統(tǒng)下
10.3 Nginx在Windows下的性能
如何
10.4 Nginx與Apache比較有哪些
優(yōu)點
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章 限制用戶并發(fā)連接數(shù)
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 限制連接數(shù)
21.2.2 未限制連接數(shù)
第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 變量
32.5 非標準的錯誤代碼
32.6 使用舉例
32.6.1 單向認證
32.6.2 更新Nginx配置
32.6.3 訪問測試
32.6.4 雙向認證
32.6.5 創(chuàng)建相關目錄
32.7 HTTPS 服務器優(yōu)化
第33章 監(jiān)控Nginx的工作狀態(tài)
第34章 使用empty_gif
第35章 Nginx實現(xiàn)對響應體內容
的替換
第36章 Nginx的WebDAV
第37章 Nginx的Xslt模塊
第38章 Nginx的基本認證方式
38.1 生成密碼
38.2 添加配置
38.3 訪問測試
第39章 Nginx的cookie
第40章 Nginx基于客戶端請求頭
的訪問分
第41章 通過Upstream模塊使得
Nginx實現(xiàn)后臺服務器
集群
第42章 根據瀏覽器選擇主頁
第43章 關于Nginx提供下載.ipa或
.apk文件的處理方法
第44章 SCGI
44.1 被傳遞給SCGI服務器的參數(shù)
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 四個頭的區(qū)別與聯(lián)系
第46章 使用upstream_keepalive
模塊實現(xiàn)keep-live
第47章 后臺服務器的健康檢測
第48章 使用sticky模塊實現(xiàn)
粘貼性會話
第49章 Nginx對后臺服務器實現(xiàn)
“公平”訪問
第50章 Nginx使用redis數(shù)據庫
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的協(xié)議
55.6.1 通信協(xié)議
55.6.2 鍵(Key)
55.6.3 命令
55.6.4 過期時間
55.6.5 錯誤字符串
55.6.6 存儲數(shù)據的命令
55.6.7 獲取數(shù)據的命令
55.6.8 刪除數(shù)據的命令
55.6.9 增加/減少數(shù)據的命令
55.6.10 查詢存儲狀態(tài)的命令
55.6.11 多方面統(tǒng)計命令
55.6.12 條目統(tǒng)計命令
55.6.13 其他命令
55.6.12 UDP協(xié)議
55.7 Nginx的Memcached模塊
55.8 Memcached的客戶端
55.9 libmemcached
55.9.1 libmemcached的安裝
55.9.2 命令
55.9.3 函數(shù)
第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系統(tǒng)設置
57.4.1 Linux優(yōu)化內核
57.4.2 優(yōu)化系統(tǒng)資源使用
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 數(shù)據結構
57.13.4 變量
57.13.5 ACL指令
57.13.6 Varnish的函數(shù)
57.13.7 子程序
57.13.8 ESI
57.14 grace模式和saint模式
57.14.1 grace模式
57.14.2 saint模式
57.14.3 grace模式和 saint模式的
局限性
章節(jié)摘錄
版權頁: 插圖: 這個指令,另外要想使用chunk編碼需要在HTTP1.1協(xié)議下訪問才有效。 指令名稱:client body_in_file_only 語法:client body_in_file_only on|off 默認值:off 使用環(huán)境:http,server,location 功能:該指令總是強制Nginx將客戶端請求體存儲到一個臨時的磁盤文件,即使請求體的實際大小為0。然而需要注意的是,在啟用該指令之后,該文件在請求完成之后并不會被移除。該指令可以用于調試和嵌入式Perl模塊$r->request_body_file方法的使用。 指令名稱:client_body_in_single_buffer 語法:client_body_in_single_buffer 默認值:off 使用環(huán)境:http,server,location 功能:該指令在0.7.58以上的Nginx版本中提供,用于指定是否將整個客戶端請求體保存在單個請求緩存中。為了減少復制操作,當使用變量$request_body的時候,推薦使用該指令。 注意:當請求體不能被單個緩存(參考client_body_buffer_size)容納下的時候,那么請求體仍將會保存到磁盤上。 指令名稱:client_body_buffer_size 語法:client_body_buffer_size the_size 默認值:8k/16k 使用環(huán)境:http,server,location 功能:該指令指定了客戶端請求體緩存的大小。如果請求體大于該緩存大小,那么整個請求體或者請求體的某些部分將會被寫入臨時文件。 默認值等于兩個頁面的大小,頁面的大小依賴于所在的操作系統(tǒng)平臺,可能是8k或者是16k。 當請求頭中Content-Length的值小于指定緩存的大小時,那么Nginx將會使用較小的一個緩存,因此Nginx也并非總是為每一個請求分配指定大小的緩存。 指令名稱:client_body_temp_path 語法:client_body_temp_path dir-path(level1(level2(level3) 默認值:client_body_temp 使用環(huán)境:http,server,location 功能:該指令用于指定一個存儲臨時文件的目錄,在這個目錄中將會存儲客戶端請求體。按照指定的子目錄等級,可能會有三級目錄。例如: client_body_temp_path /spool/nginx/client_temp 12; 那么該目錄的存儲架構將會是: /spool/nginx/client temp/7/45/00000123457。
編輯推薦
《決戰(zhàn)Nginx系統(tǒng)卷:高性能Web服務器詳解與運維》涵蓋現(xiàn)有流行動態(tài)語言(PHP、Python、Perl、Java、Ruby 和 ASP.NET)與Nginx服務器的結合,通過在生產環(huán)境中的具體應用,詳細講述了每一種應用服務器(包括開發(fā)架構)的多種不同結合方式。另外,《決戰(zhàn)Nginx系統(tǒng)卷:高性能Web服務器詳解與運維》詳細講述了應用程序服務器的緩存技術,特別是對Memcached服務器的應用。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載
決戰(zhàn)Nginx系統(tǒng)卷 PDF格式下載