出版時(shí)間:2012-6 出版社:清華大學(xué)出版社 作者:陶利軍 頁數(shù):662 字?jǐn)?shù):1153000
Tag標(biāo)簽:無
內(nèi)容概要
在這個(gè)點(diǎn)擊率就是生命的時(shí)代,高可用是不可少的。本書完整講述了Nginx服務(wù)器的各種技術(shù)細(xì)節(jié)以及安裝、部署、運(yùn)維等方面的內(nèi)容。
本書第一部分首先講述了Nginx服務(wù)器的功能、模塊管理和進(jìn)程管理,然后講述Nginx如何處理請(qǐng)求,在這個(gè)基礎(chǔ)之上再認(rèn)識(shí)Nginx提供的服務(wù)器的名字,Nginx服務(wù)器最大的焦點(diǎn)在于高并發(fā)和反向代理,在不多卻足夠使用的模塊下實(shí)現(xiàn)了更多的功能。
在第二部分中,通過具體使用實(shí)例講述了Nginx的模塊(包括官方模塊和第三方模塊),并詳細(xì)介紹了充分使用Nginx的方式方法。同時(shí)在這里使用了Heartbeat服務(wù)實(shí)現(xiàn)Nginx服務(wù)器的高可用。
本書的最后一部分是關(guān)于Nginx使用緩存技術(shù)的方法,共列舉了Nginx使用的五大緩存,特別是廣泛使用的代理緩存、Memcached和Varnish,另外對(duì)于Memcached服務(wù)器的使用貫穿了整套書。在本書中著重講述了它的協(xié)議、原理和使用,而在本書姊妹篇中則通過不同語言的客戶端對(duì)Memcached服務(wù)器實(shí)現(xiàn)具體使用。
本書適用于廣大的Linux愛好者、具有一定Linux基礎(chǔ)的系統(tǒng)管理員、Linux下的Web服務(wù)器管理員、Linux服務(wù)器下動(dòng)態(tài)語言開發(fā)人員、Nginx服務(wù)器管理員、培訓(xùn)中心師生、運(yùn)維人員以及一切應(yīng)該了解和使用Nginx的用戶。
作者簡(jiǎn)介
陶利軍,互聯(lián)網(wǎng)行業(yè)高端低調(diào)人士,專注于Linux平臺(tái)下開源產(chǎn)品的研究和推廣,運(yùn)維構(gòu)架(服務(wù)搭建、集群及高可用),網(wǎng)絡(luò)安全評(píng)估,分布式存儲(chǔ)等。
書籍目錄
目 錄
第1部分 Nginx服務(wù)器
第1章 Nginx的功能
1.1 功能描述
1.1.1 基本HTTP功能
1.1.2 其他HTTP功能
1.1.3 郵件代理服務(wù)器功能
1.1.4 架構(gòu)和可擴(kuò)展性
1.1.5 被測(cè)試的系統(tǒng)和平臺(tái)
1.2 服務(wù)器的類型
1.3 認(rèn)識(shí)Nginx服務(wù)器的基本模塊
1.3.1 Nginx的內(nèi)核模塊
1.3.2 Nginx的事件模塊
1.3.3 Nginx的HTTP內(nèi)核模塊
第2章 Nginx的模塊管理和
進(jìn)程管理
2.1 模塊管理
2.1.1 從源碼看模塊
2.1.2 選擇使用Nginx的模塊
2.1.3 Nginx使用第三方模塊
2.2 進(jìn)程管理
2.2.1 master進(jìn)程和worker進(jìn)程
2.2.2 關(guān)于worker數(shù)目的設(shè)置
2.3 針對(duì)Nginx對(duì)Linux系統(tǒng)的優(yōu)化
2.3.1 關(guān)閉系統(tǒng)中不需要的服務(wù)
2.3.2 優(yōu)化寫磁盤操作
2.3.3 優(yōu)化資源限制
2.3.4 優(yōu)化內(nèi)核TCP選項(xiàng)
2.4 優(yōu)化Nginx服務(wù)器
2.4.1 關(guān)閉訪問日志
2.4.2 使用epoll
2.4.3 Nginx服務(wù)器配置優(yōu)化
第3章 Nginx如何處理一個(gè)請(qǐng)求
3.1 IP、域名部分的處理
3.1.1 基于名字的虛擬主機(jī)
3.1.2 阻止處理對(duì)不明確主機(jī)名
的請(qǐng)求
3.1.3 基于IP和域名的虛擬域名
服務(wù)器處理請(qǐng)求
3.2 URI部分的處理
3.2.1 實(shí)例
3.2.2 分析
第4章 服務(wù)器名字
4.1 通配符名字
4.2 正則表達(dá)式名字
4.3 其他不同種類的名字
4.4 名字優(yōu)化
4.5 兼容性
4.6 對(duì)服務(wù)器名字的擴(kuò)展
4.7 基于目錄名的域名訪問
4.7.1 正則表達(dá)式處于主機(jī)名字
的位置上
4.7.2 正則表達(dá)式處于域名
的位置上
4.8 關(guān)于$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 相關(guān)命令
5.2.3 實(shí)例
5.3 工具3——htpasswd.py
5.3.1 下載文件
5.3.2 命令的使用方法
5.4 工具4——Nginx啟動(dòng)腳本
第6章 5xx錯(cuò)誤及處理
6.1 500內(nèi)部服務(wù)器錯(cuò)誤
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 相關(guān)安裝
7.2 配置示例
7.3 指令
7.4 使用實(shí)例
第8章 PCRE正則表達(dá)式
8.1 安裝PCRE
8.2 命令
8.2.1 pcre-config命令
8.2.2 pcretest命令
8.3 man目錄
8.4 Nginx與正則表達(dá)式
8.4.1 正則表達(dá)式支持UTF-8
8.4.2 Nginx使用正則表達(dá)式
第9章 Nginx高可用的實(shí)現(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 啟動(dòng)Heartbeat
9.3.1 環(huán)境部署
9.3.2 啟動(dòng)主Heartbeat
9.3.3 啟動(dòng)備用Heartbeat
9.4 測(cè)試Heartbeat
9.4.1 宕掉主節(jié)點(diǎn)
9.4.2 重新啟動(dòng)主節(jié)點(diǎn)
第10章 10個(gè)QA
10.1 什么是Nginx
10.2 Nginx可以安裝在哪些
操作系統(tǒng)下
10.3 Nginx在Windows下的性能
如何
10.4 Nginx與Apache比較有哪些
優(yōu)點(diǎn)
10.5 Nginx解決了C10k問題
10.6 從Nginx接收客戶端請(qǐng)求處理的
角度來說,它與Apache
有何不同
10.7 安裝完成Nginx后,如何查看
Nginx的版本
10.8 安裝完成Nginx后,如何查看
configure時(shí)的配置
10.9 啟動(dòng)Nginx后,能不能看到Nginx
當(dāng)前都支持哪些模塊
10.10 Https僅能用在指定的
目錄下嗎
第2部分 Nginx服務(wù)器的功能模塊
第11章 限 制 流 量
11.1 指令
11.2 實(shí)例配置
第12章 限制用戶并發(fā)連接數(shù)
12.1 示例配置
12.2 指令
12.3 配置實(shí)例
第13章 修改或隱藏Nginx
的版本號(hào)
13.1 隱藏版本號(hào)
13.2 修改版本號(hào)
第14章 配置FLV服務(wù)器
14.1 示例配置
14.2 指令
14.3 配置實(shí)例
第15章 Nginx的訪問控制
15.1 配置示例
15.2 指令
15.3 使用實(shí)例
第16章 提供FTP下載
16.1 配置示例
16.2 指令
16.3 使用實(shí)例
第17章 Nginx與編碼
17.1 文件和文件名的編碼
17.2 使用convmv
17.3 使用enca
17.4 字符集設(shè)置模塊
第18章 網(wǎng)頁壓縮傳輸
18.1 HttpGzipModule
18.2 HttpGzipStaticModule
第19章 控制Nginx如何記錄日志
第20章 map模塊的使用
第21章 Nginx預(yù)防應(yīng)用層DDoS
攻擊
21.1 Limit request模塊
21.2 訪問測(cè)試
21.2.1 限制連接數(shù)
21.2.2 未限制連接數(shù)
第22章 為Nginx添加、清除或
改寫響應(yīng)
22.1 HttpHeadersModule
22.2 ngx_headers_more
第23章 重寫URI
第24章 Nginx與服務(wù)器端包含
24.1 ssi指令
24.2 使用實(shí)例
第25章 Nginx與X-Sendfile
25.1 處理流程
25.2 特殊頭
25.3 使用實(shí)例
第26章 在Nginx的響應(yīng)體之前或
之后添加內(nèi)容
第27章 Nginx與訪問者的
地理信息
第28章 Nginx的圖像處理
第29章 location中隨機(jī)
顯示文件
第30章 后臺(tái)Nginx服務(wù)器記錄
原始客戶端的IP地址
第31章 解決防盜鏈
31.1 使用Referer模塊
31.2 使用AccessKey模塊
31.3 使用SecureLink模塊
第32章 Nginx提供HTTPS服務(wù)
32.1 兼容性
32.2 安裝SSL服務(wù)
32.3 通配符證書
32.4 變量
32.5 非標(biāo)準(zhǔn)的錯(cuò)誤代碼
32.6 使用舉例
32.6.1 單向認(rèn)證
32.6.2 更新Nginx配置
32.6.3 訪問測(cè)試
32.6.4 雙向認(rèn)證
32.6.5 創(chuàng)建相關(guān)目錄
32.7 HTTPS 服務(wù)器優(yōu)化
第33章 監(jiān)控Nginx的工作狀態(tài)
第34章 使用empty_gif
第35章 Nginx實(shí)現(xiàn)對(duì)響應(yīng)體內(nèi)容
的替換
第36章 Nginx的WebDAV
第37章 Nginx的Xslt模塊
第38章 Nginx的基本認(rèn)證方式
38.1 生成密碼
38.2 添加配置
38.3 訪問測(cè)試
第39章 Nginx的cookie
第40章 Nginx基于客戶端請(qǐng)求頭
的訪問分
第41章 通過Upstream模塊使得
Nginx實(shí)現(xiàn)后臺(tái)服務(wù)器
集群
第42章 根據(jù)瀏覽器選擇主頁
第43章 關(guān)于Nginx提供下載.ipa或
.apk文件的處理方法
第44章 SCGI
44.1 被傳遞給SCGI服務(wù)器的參數(shù)
44.2 實(shí)例1:Perl語言的應(yīng)用
44.3 實(shí)例2:Python語言的應(yīng)用
44.4 在Nginx中使用Etag
第45章 Expires與ETag
45.1 安裝nginx-static-etags模塊
45.2 安裝nginx-dynamic-etags模塊
45.3 四個(gè)頭的區(qū)別與聯(lián)系
第46章 使用upstream_keepalive
模塊實(shí)現(xiàn)keep-live
第47章 后臺(tái)服務(wù)器的健康檢測(cè)
第48章 使用sticky模塊實(shí)現(xiàn)
粘貼性會(huì)話
第49章 Nginx對(duì)后臺(tái)服務(wù)器實(shí)現(xiàn)
“公平”訪問
第50章 Nginx使用redis數(shù)據(jù)庫
50.1 安裝redis模塊
50.2 安裝redis2模塊
50.3 關(guān)于redis
第51章 Nginx訪問MongoDB
51.1 安裝nginx-gridfs模塊
51.2 關(guān)于MongoDB
第52章 Nginx訪問Mogilefs
第3部分 Nginx與緩存
第53章 緩存技術(shù)——proxy
_cache
5.31 了解cache_purge模塊
53.2 設(shè)置Nginx的配置文件
53.3 訪問測(cè)試
53.4 手動(dòng)清除緩存
第54章 緩存技術(shù)——proxy
_store
54.1 設(shè)置Nginx的配置文件
54.2 訪問測(cè)試
54.3 手動(dòng)清除緩存
第55章 緩存技術(shù)——Memcached
55.1 Memcached服務(wù)器
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服務(wù)的
運(yùn)行情況
55.6 服務(wù)器的運(yùn)行情況——詳細(xì)了解
Memcached的協(xié)議
55.6.1 通信協(xié)議
55.6.2 鍵(Key)
55.6.3 命令
55.6.4 過期時(shí)間
55.6.5 錯(cuò)誤字符串
55.6.6 存儲(chǔ)數(shù)據(jù)的命令
55.6.7 獲取數(shù)據(jù)的命令
55.6.8 刪除數(shù)據(jù)的命令
55.6.9 增加/減少數(shù)據(jù)的命令
55.6.10 查詢存儲(chǔ)狀態(tài)的命令
55.6.11 多方面統(tǒng)計(jì)命令
55.6.12 條目統(tǒng)計(jì)命令
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章 緩存技術(shù)——NCache
56.1 NCache工作層示意圖
56.2 請(qǐng)求邏輯圖
56.3 安裝NCache
56.4 配置文件
第57章 緩存技術(shù)——Varnish
57.1 了解Varnish
57.2 Varnish的訪問部署
57.2.1 第一種部署方案:Varnish
提供80訪問
57.2.2 第二種部署方案:Varnish
位于Nginx之后只提供
緩存
57.3 Nginx與Varnish的結(jié)合
57.4 針對(duì)Linux系統(tǒng)設(shè)置
57.4.1 Linux優(yōu)化內(nèi)核
57.4.2 優(yōu)化系統(tǒng)資源使用
57.5 使用Varnish
57.6 緩存大小的設(shè)置
57.7 VCL配置
57.8 Varnish的啟動(dòng)與停止
57.9 Varnish的訪問日志
57.10 守護(hù)進(jìn)程varnishd
57.11 Varnish提供的命令
57.12 手動(dòng)清除緩存
57.12.1 基于命令行方式清除
Varnish緩存
57.12.2 基于應(yīng)用程序方式清除
Varnish緩存
57.13 VCL語言
57.13.1 默認(rèn)配置文件
57.13.2 操作符
57.13.3 數(shù)據(jù)結(jié)構(gòu)
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é)摘錄
版權(quán)頁: 插圖: 這個(gè)指令,另外要想使用chunk編碼需要在HTTP1.1協(xié)議下訪問才有效。 指令名稱:client body_in_file_only 語法:client body_in_file_only on|off 默認(rèn)值:off 使用環(huán)境:http,server,location 功能:該指令總是強(qiáng)制Nginx將客戶端請(qǐng)求體存儲(chǔ)到一個(gè)臨時(shí)的磁盤文件,即使請(qǐng)求體的實(shí)際大小為0。然而需要注意的是,在啟用該指令之后,該文件在請(qǐng)求完成之后并不會(huì)被移除。該指令可以用于調(diào)試和嵌入式Perl模塊$r->request_body_file方法的使用。 指令名稱:client_body_in_single_buffer 語法:client_body_in_single_buffer 默認(rèn)值:off 使用環(huán)境:http,server,location 功能:該指令在0.7.58以上的Nginx版本中提供,用于指定是否將整個(gè)客戶端請(qǐng)求體保存在單個(gè)請(qǐng)求緩存中。為了減少復(fù)制操作,當(dāng)使用變量$request_body的時(shí)候,推薦使用該指令。 注意:當(dāng)請(qǐng)求體不能被單個(gè)緩存(參考client_body_buffer_size)容納下的時(shí)候,那么請(qǐng)求體仍將會(huì)保存到磁盤上。 指令名稱:client_body_buffer_size 語法:client_body_buffer_size the_size 默認(rèn)值:8k/16k 使用環(huán)境:http,server,location 功能:該指令指定了客戶端請(qǐng)求體緩存的大小。如果請(qǐng)求體大于該緩存大小,那么整個(gè)請(qǐng)求體或者請(qǐng)求體的某些部分將會(huì)被寫入臨時(shí)文件。 默認(rèn)值等于兩個(gè)頁面的大小,頁面的大小依賴于所在的操作系統(tǒng)平臺(tái),可能是8k或者是16k。 當(dāng)請(qǐng)求頭中Content-Length的值小于指定緩存的大小時(shí),那么Nginx將會(huì)使用較小的一個(gè)緩存,因此Nginx也并非總是為每一個(gè)請(qǐng)求分配指定大小的緩存。 指令名稱:client_body_temp_path 語法:client_body_temp_path dir-path(level1(level2(level3) 默認(rèn)值:client_body_temp 使用環(huán)境:http,server,location 功能:該指令用于指定一個(gè)存儲(chǔ)臨時(shí)文件的目錄,在這個(gè)目錄中將會(huì)存儲(chǔ)客戶端請(qǐng)求體。按照指定的子目錄等級(jí),可能會(huì)有三級(jí)目錄。例如: client_body_temp_path /spool/nginx/client_temp 12; 那么該目錄的存儲(chǔ)架構(gòu)將會(huì)是: /spool/nginx/client temp/7/45/00000123457。
編輯推薦
《決戰(zhàn)Nginx系統(tǒng)卷:高性能Web服務(wù)器詳解與運(yùn)維》涵蓋現(xiàn)有流行動(dòng)態(tài)語言(PHP、Python、Perl、Java、Ruby 和 ASP.NET)與Nginx服務(wù)器的結(jié)合,通過在生產(chǎn)環(huán)境中的具體應(yīng)用,詳細(xì)講述了每一種應(yīng)用服務(wù)器(包括開發(fā)架構(gòu))的多種不同結(jié)合方式。另外,《決戰(zhàn)Nginx系統(tǒng)卷:高性能Web服務(wù)器詳解與運(yùn)維》詳細(xì)講述了應(yīng)用程序服務(wù)器的緩存技術(shù),特別是對(duì)Memcached服務(wù)器的應(yīng)用。
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載
決戰(zhàn)Nginx系統(tǒng)卷 PDF格式下載