從事網站底層管理或建設的工程師,心中常常會想到如Facebook、Yahoo!、新浪這樣的巨型商用網站,到底是用什麼技術架設起來的。除了基礎建設之外,在營運上,這些網站能承受的當機時間也比一般網站要少很多,那麼在強烈要求QoS 的同時,又必須承受巨量的存取負擔,在技術上的複雜性一定比一般簡單的架站更有難度。
了解巨型網站伺服器及平台的營運及技術,卻是電腦從業人員必須具備的基礎知識。
目前市場上關於Linux系統管理、維護和最佳化的書籍很多,但是普遍存在模式單一的現象,不是只講基礎理論和系統指令,就是偏重程式範例;或只針對實際的系統版本(Redhat Linux/Ubuntu Linux 等),缺少實作應用,很少對Linux 進行全面、深入、靈活的講解。
本書針對這種現象,從基礎入手,再進行深入研究,同時結合實際的應用案例進行由點到面、由淺入深的說明,將Linux應用的各個方面系統、深入、全面地展現給讀者。從挑選正確的網站平台,一直到設計建置及優化平台服務的組合,作者的功力在每一個敘述、程式、設定檔中一覽無遺。
理論介紹結合實際應用貫穿全書,透過真實案例讓讀者可以更深入地了解Linux應用的現實環境,進一步真正加強實作能力。這是作者多年實作工作的經驗歸納,全書貫穿了由點及線、由線及面的學習方法,不同層次的讀者都能從本書受益。
全書分為5篇,以Linux平台下的應用軟體為中心,有關Linux運行維護的各個方面,包含Web應用、資料備份恢復、網路儲存應用、運行維護監控與效能最佳化、叢集進階應用。其中,前四項是Linux運行維護的核心內容,是本書的基礎,最後一項是前面內容的綜合和深入,更是本書的重點,讀完本書讀者一定會有一種豁然開朗的感覺。
Linux系統管理員、系統運行維護工程師、系統整合商、解決方案架構師、所有從事開放原始碼的愛好者。
對想要了解高度網路化世界底層技術,以及對未來網路伺服器平台發展的讀者,絕對是一本極優參考書。
目錄
前言
第1篇 Web應用篇
第1章 輕量級HTTP伺服器Nginx
1.1 什麼是Nginx
1.2 為什麼要選擇Nginx
1.2.1 Nginx與Apache的異同
1.2.2 選擇Nginx的優勢所在
1.3 Nginx的模組與工作原理
1.4 Nginx的安裝與設定
1.4.1 下載與安裝Nginx
1.4.2 Nginx設定檔的結構
1.4.3 設定與偵錯Nginx
1.4.4 Nginx的啟動、關閉和平順重新啟動
1.5 Nginx常用設定實例
1.5.1 虛擬主機設定實例
1.5.2 負載平衡設定實例
1.5.3 防盜鏈設定實例
1.5.4 記錄檔分割設定實例
1.6 Nginx效能最佳化技巧
1.6.1 編譯安裝過程最佳化
1.6.2 利用TCMalloc最佳化Nginx的效能
1.6.3 Nginx核心參數最佳化
1.7 實戰Nginx與PHP(FastCGI)的安裝、設定與最佳化
1.7.1 什麼是 FastCGI
1.7.2 Nginx+FastCGI執行原理
1.7.3 spawn-fcgi與PHP-FPM
1.7.4 PHP與PHP-FPM的安裝及最佳化
1.7.5 設定Nginx來支援PHP
1.7.6 測試Nginx對PHP的解析功能
1.7.7 最佳化Nginx中FastCGI參數的實例
1.8 實戰Nginx與Perl、Java的安裝與設定
1.8.1 Perl(FastCGI)的安裝
1.8.2 為Nginx增加FCGI支援
1.8.3 測試Nginx +Perl(FastCGI)
1.8.4 架設Nginx+Java環境
1.9 本章小結
第2章 高性能HTTP加速器Varnish
2.1 初識Varnish
2.1.1 Varnish概述
2.1.2 Varnish的結構與特點
2.1.3 Varnish與Squid的比較
2.2 開始安裝Varnish
2.2.1 安裝前的準備
2.2.2 取得Varnish軟體
2.2.3 安裝pcre
2.2.4 安裝Varnish
2.3 設定Varnish
2.3.1 VCL使用說明
2.3.2 設定一個簡單的Varnish實例
2.3.3 Varnish對應多台Web伺服器的設定實例
2.4 執行Varnish
2.4.1 varnishd指令
2.4.2 設定Varnish執行指令稿
2.4.3 管理Varnish執行記錄檔
2.5 管理Varnish
2.5.1 檢視Varnish執行緒
2.5.2 檢視Varnish快取效果與狀態
2.5.3 透過通訊埠管理Varnish
2.5.4 管理Varnish快取內容
2.6 Varnish最佳化
2.6.1 最佳化Linux核心參數
2.6.2 最佳化系統資源
2.6.3 最佳化Varnish參數
2.7 Varnish的常見應用實例
2.7.1 利用Varnish實現圖片防盜鏈
2.7.2 利用Varnish實現靜態檔案壓縮處理
2.8 本章小結
第3章 Memcached應用實戰
3.1 Memcached基礎
3.1.1 什麼是Memcached
3.1.2 Memcached的特徵
3.1.3 Memcached的安裝
3.1.4 Memcached的簡單使用過程
3.2 剖析Memcached的工作原理
3.2.1 Memcached的工作過程
3.2.2 Slab Allocation的工作機制
3.2.3 Memcached的刪除機制
3.2.4 Memcached的分散式演算法
3.3 Memcached的管理與效能監控
3.3.1 如何管理Memcached
3.3.2 Memcached的監控
3.3.3 Memcached變種產品介紹
3.4 透過UDFs實現Memcached與MySQL的自動更新
3.4.1 UDFs使用簡介
3.4.2 memcached_functions_mysql應用實例
3.4.3 對memcached_functions_mysql的簡單功能進行測試
3.4.4 使用memcached_functions_mysql的經驗與技巧
3.5 本章小結
第2篇 資料備份恢復篇
第4章 開放原始碼網路備份軟體bacula
4.1 bacula整體概述
4.1.1 bacula是什麼
4.1.2 bacula適合哪些使用者
4.1.3 bacula的功能特點
4.1.4 bacula的工作原理
4.2 安裝bacula
4.2.1 bacula的幾種網路備份拓撲
4.2.2 編譯與安裝bacula
4.2.3 初始化MySQL資料庫
4.3 設定一個bacula備份系統
4.3.1 設定bacula的Console端
4.3.2 設定bacula的Director端
4.3.3 設定bacula的SD
4.3.4 設定bacula的FD端
4.4 啟動與關閉bacula
4.4.1 啟動bacula的Director daemon與Storage daemon
4.4.2 在用戶端FD啟動File daemon
4.5 實戰bacula備份恢復過程
4.5.1 實例示範bacula的完全備份功能
4.5.2 實例示範bacula的增量備份功能
4.5.3 實例示範bacula的差異備份功能
4.5.4 實例示範bacula的完全恢復功能
4.5.5 實例示範bacula的不完全恢復功能
4.6 本章小結
第5章 資料鏡像備份工具rsync與unison
5.1 rsync簡介
5.1.1 什麼是rsync
5.1.2 rsync的功能特性
5.1.3 下載與安裝rsync軟體
5.2 利用rsync架設資料鏡像備份系統
5.2.1 rsync的應用模式
5.2.2 企業案例:架設遠端災難恢復備份系統
5.3 透過rsync+inotify實現資料的即時備份
5.3.1 rsync的優點與不足
5.3.2 初識inotify
5.3.3 安裝inotify工具inotify-tools
5.3.4 inotify相關參數
5.3.5 inotifywait相關參數
5.3.6 企業應用案例:利用rsync+inotify架設即時同步系統
5.4 unison簡介
5.5 安裝unison
5.6 設定雙機ssh信任
5.6.1 在兩台機器上建立 RSA金鑰
5.6.2 增加金鑰到授權金鑰檔案中
5.7 unison的使用
5.7.1 本機使用unison
5.7.2 遠端使用unison
5.7.3 unison參數說明
5.7.4 透過設定檔來使用unison
5.8 本章小結
第6章 ext3檔案系統反刪除利器ext3grep
6.1 “rm–rf”帶來的困惑
6.2 ext3grep的安裝與使用
6.2.1 ext3grep的恢復原理
6.2.2 ext3grep的安裝過程
6.3 透過ext3grep恢復誤刪除的檔案與目錄
6.3.1 資料恢復準則
6.3.2 實戰ext3grep恢復檔案
6.4 透過ext3grep恢復誤刪除的MySQL表
6.4.1 MySQL儲存引擎介紹
6.4.2 模擬MySQL表被誤刪除的環境
6.4.3 透過ext3grep分析資料、恢復資料
6.5 本章小結
第3篇 網路儲存應用篇
第7章 IP網路儲存iSCSI
7.1 儲存的概念與術語
7.1.1 SCSI介紹
7.1.2 FC介紹
7.1.3 DAS介紹
7.1.4 NAS介紹
7.1.5 SAN介紹
7.2 iSCSI的概念
7.3 FC SAN與IP SAN
7.4 iSCSI的組成
7.4.1 iSCSI Initiator
7.4.2 iSCSI Target
7.5 iSCSI的工作原理
7.6 架設以IP SAN為基礎的iSCSI儲存系統
7.6.1 安裝iSCSI Target軟體
7.6.2 設定一個簡單的iSCSI Target
7.6.3 在Windows上設定iSCSI Initiator
7.6.4 在Linux上設定iSCSI Initiator
7.7 iSCSI 在安全方面的相關設定
7.7.1 Initiator主機以IP認證方式取得iSCSI Target資源
7.7.2 Initiator主機以密碼認證方式取得iSCSI Target資源
7.8 iSCSI效能最佳化方案
7.8.1 iSCSI效能瓶頸
7.8.2 iSCSI效能最佳化
7.9 本章小結
第8章 分散式儲存系統MFS
8.1 MFS概論
8.2 MFS 檔案系統
8.2.1 MFS檔案系統結構
8.2.2 MFS的編譯與安裝實例
8.3 編譯與使用MFS的經驗歸納
8.3.1 安裝選項說明
8.3.2 管理伺服器
8.3.3 中繼資料記錄檔伺服器
8.3.4 資料儲存伺服器
8.3.5 用戶端掛載
8.4 管理與使用MFS
8.4.1 在用戶端掛載檔案系統
8.4.2 MFS常用操作
8.4.3 為垃圾箱設定隔離時間
8.4.4 快照
8.4.5 MFS的其他指令
8.5 維護MFS
8.5.1 啟動MFS叢集
8.5.2 停止MFS叢集
8.5.3 MFS 資料儲存伺服器的維護
8.5.4 MFS中繼資料的備份
8.5.5 MFS 管理伺服器的恢復
8.5.6 從備份恢復MFS 管理伺服器
8.6 透過容錯實現失敗防護的解決方案
8.7 本章小結
第4篇 運行維護監控與效能最佳化篇
第9章 運行維護監控利器Nagios
9.1 Nagios綜述
9.1.1 什麼是Nagios
9.1.2 Nagios的結構與特點
9.2 Nagios的安裝與設定
9.2.1 安裝Nagios
9.2.2 設定Nagios
9.3 Nagios的執行和維護
9.3.1 驗證Nagios設定檔的正確性
9.3.2 啟動與停止Nagios
9.3.3 Nagios故障警告
9.4 Nagios效能分析圖表的實現
9.4.1 Nagios效能分析圖表的作用
9.4.2 PNP的概念與安裝環境
9.4.3 安裝PNP
9.4.4 設定PNP
9.4.5 修改Nagios設定檔
9.4.6 測試PNP功能
9.5 利用外掛程式擴充Nagios的監控功能
9.5.1 利用NRPE外部組件監控遠端主機
9.5.2 利用飛信實現Nagios簡訊警告功能
9.6 本章小結
第10章 以Linux伺服器為基礎的效能分析與最佳化
10.1 系統性能分析的目的
10.1.1 找到系統性能的瓶頸
10.1.2 提供效能最佳化方案
10.1.3 使系統硬體和軟體資源的使用達到平衡
10.2 分析系統性能有關的人員
10.2.1 Linux系統管理人員
10.2.2 系統架構設計人員
10.2.3 軟體開發人員
10.3 影響Linux效能的各種因素
10.3.1 系統硬體資源
10.3.2 作業系統相關資源
10.3.3 應用程式軟體資源
10.4 系統性能分析標準和最佳化原則
10.5 幾種典型應用對系統資源使用的特點
10.5.1 以靜態內容為主的Web應用
10.5.2 以動態內容為主的Web應用
10.5.3 資料庫應用
10.5.4 軟體下載應用
10.5.5 流媒體服務應用
10.6 Linux下常見的效能分析工具
10.6.1 vmstat指令
10.6.2 sar指令
10.6.3 iostat指令
10.6.4 free指令
10.6.5 uptime指令
10.6.6 netstat指令
10.6.7 top指令
10.7 以Web應用為基礎的效能分析及最佳化案例
10.7.1 以動態內容為主為基礎的網站最佳化案例
10.7.2 以動態、靜態內容結合為基礎的網站最佳化案例
10.8 本章小結
第5篇 叢集進階應用篇
第11章 建構高可用的LVS負載平衡叢集
11.1 LVS叢集的組成與特點
11.1.1 LVS叢集的組成
11.1.2 LVS叢集的特點
11.1.3 LVS叢集系統的優缺點
11.2 高可用 LVS負載平衡叢集系統結構
11.3 高可用性軟體Heartbeat與Keepalived
11.3.1 開放原始碼HA軟體Heartbeat的介紹
11.3.2 安裝heartbeat
11.3.3 開放原始碼HA軟體Keepalived的介紹
11.3.4 安裝Keepalived
11.4 安裝LVS軟體
11.4.1 設定與檢查安裝環境
11.4.2 在Director Server上安裝IPVS管理軟體
11.5 架設高可用 LVS叢集
11.5.1 透過heartbeat架設LVS高可用性叢集
11.5.2 透過Keepalived架設LVS高可用性叢集系統
11.5.3 透過piranha架設LVS高可用性叢集
11.6 測試高可用LVS負載平衡叢集系統
11.6.1 高可用性功能測試
11.6.2 負載平衡測試
11.6.3 故障切換測試
11.7 本章小結
第12章 RHCS叢集
12.1 RHCS叢集概述
12.2 RHCS叢集的組成與結構
12.2.1 RHCS叢集的組成
12.2.2 RHCS叢集結構
12.3 RHCS叢集的執行原理及功能
12.3.1 分散式叢集管理員(CMAN)
12.3.2 鎖管理(DLM)
12.3.3 設定檔管理(CCS)
12.3.4 柵裝置(Fence)
12.3.5 高可用性服務管理員
12.3.6 叢集設定和管理工具
12.3.7 Redhat GFS
12.4 安裝RHCS
12.4.1 安裝前準備工作
12.4.2 設定共用儲存和RHCS管理端Luci
12.4.3 在叢集節點上安裝RHCS軟體套件
12.4.4 在叢集節點上安裝和設定iSCSI用戶端
12.5 設定RHCS高可用叢集
12.5.1 建立一個cluster
12.5.2 建立Failover Domain
12.5.3 建立Resources
12.5.4 建立Service
12.5.5 設定儲存叢集GFS
12.5.6 設定表決磁碟
12.5.7 設定Fence裝置
12.6 管理和維護RHCS叢集
12.6.1 啟動RHCS叢集
12.6.2 關閉RHCS叢集
12.6.3 管理應用服務
12.6.4 監控RHCS叢集狀態
12.6.5 管理和維護GFS2檔案系統
12.7 RHCS叢集功能測試
12.7.1 高可用叢集測試
12.7.2 儲存叢集測試
12.8 本章小結
第13章 Oracle RAC叢集
13.1 Oracle叢集系統結構
13.2 Oracle ClusterWare系統結構與執行緒介紹
13.2.1 Oracle ClusterWare 簡介
13.2.2 Oracle ClusterWare 執行緒介紹
13.3 RAC資料庫系統結構與執行緒
13.3.1 RAC 簡介
13.3.2 Oracle RAC的特點
13.3.3 RAC執行緒管理
13.3.4 RAC資料庫儲存規劃
13.4 安裝Oracle RAC資料庫
13.4.1 安裝前的系統組態需求
13.4.2 設定資料庫安裝資源
13.4.3 設定主機解析檔案
13.4.4 檢查所需軟體套件
13.4.5 設定系統核心參數
13.4.6 設定 Shell對Oracle使用者的限制
13.4.7 設定hangcheck-timer核心模組
13.4.8 設定系統安全設定
13.4.9 建立Oracle使用者和組
13.4.10 設定Oracle使用者環境變數
13.4.11 設定節點間SSH信任
13.4.12 設定共用儲存系統
13.4.13 安裝Oracle Clusterware
13.4.14 安裝Oracle資料庫
13.4.15 設定Oracle Net
13.4.16 建立RAC資料庫
13.5 Oracle CRS的管理與維護
13.5.1 檢視叢集狀態
13.5.2 啟動與關閉叢集服務資源
13.5.3 啟動與關閉CRS
13.5.4 管理voting disk
13.5.5 管理OCR
13.5.6 快速移除CRS
13.6 ASM基本操作維護
13.6.1 ASM的特點
13.6.2 ASM的系統結構與後台執行緒
13.6.3 管理ASM實例
13.7 利用srvctl管理RAC資料庫
13.7.1 檢視實例狀態(srvctl status)
13.7.2 檢視RAC資料庫設定資訊(srvctl config)
13.7.3 啟動關閉實例(srvctl startstop)
13.7.4 增加刪除修改實例(srvctl addremovemodify)
13.8 測試RAC資料庫叢集的功能
13.8.1 負載平衡測試
13.8.2 透明應用失敗切換測試
13.9 本章小結
第14章 建構MySQL+heartbeat+DRBD+LVS叢集應用系統
14.1 MySQL高可用叢集概述
14.2 heartbeat + DRBD高可用性方案的實現原理
14.3 部署MySQL高可用高擴充叢集
14.3.1 設定之前的準備
14.3.2 DRBD的部署
14.3.3 DRBD的設定
14.3.4 DRBD的維護和管理
14.3.5 DRBD的效能最佳化
14.3.6 MySQL的部署
14.3.7 heartbeat的部署
14.4 架設Slave叢集
14.4.1 為什麼要架設Slave叢集
14.4.2 利用LVS+Keepalived架設高可用MySQL Slave叢集
14.4.3 高可用Slave叢集的一些注意點
14.5 部署MySQL叢集要考慮的問題
14.6 本章小結2.3.2 設定存取權限
前言
第1篇 Web應用篇
第1章 輕量級HTTP伺服器Nginx
1.1 什麼是Nginx
1.2 為什麼要選擇Nginx
1.2.1 Nginx與Apache的異同
1.2.2 選擇Nginx的優勢所在
1.3 Nginx的模組與工作原理
1.4 Nginx的安裝與設定
1.4.1 下載與安裝Nginx
1.4.2 Nginx設定檔的結構
1.4.3 設定與偵錯Nginx
1.4.4 Nginx的啟動、關閉和平順重新啟動
1.5 Nginx常用設定實例
1.5.1 虛擬主機設定實例
1.5.2 負載平衡設定實例
1.5.3 防盜鏈設定實例
1.5.4 記錄檔分割設定實例
1.6 Nginx效能最佳化技巧
1.6.1 編譯安裝...
購物須知
關於二手書說明:
商品建檔資料為新書及二手書共用,因是二手商品,實際狀況可能已與建檔資料有差異,購買二手書時,請務必檢視商品書況、備註說明及書況影片,收到商品將以書況影片內呈現為準。若有差異時僅可提供退貨處理,無法換貨或再補寄。
商品版權法律說明:
TAAZE 單純提供網路二手書託售平台予消費者,並不涉入書本作者與原出版商間之任何糾紛;敬請各界鑒察。
退換貨說明:
二手書籍商品享有10天的商品猶豫期(含例假日)。若您欲辦理退貨,請於取得該商品10日內寄回。
二手影音商品(例如CD、DVD等),恕不提供10天猶豫期退貨。
二手商品無法提供換貨服務,僅能辦理退貨。如須退貨,請保持該商品及其附件的完整性(包含書籍封底之TAAZE物流條碼)。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱
退換貨原則、
二手CD、DVD退換貨說明。