目前,越來越多的網站采用Linux操作系統來提供各種服務,包括搭建Web服務器、文件存儲、數據庫等。人們對Linux服務器的可靠性、負載能力和計算能力也越來越關注。
《高性能網站構建實戰》從高性能站點的實際需求出發,詳細介紹了如何使用當前流行的開源軟件和工具構建Web站點所需的各種應用服務環境。全書共分為7篇16章和3個簡短的附錄。
第一篇是架構規劃篇,也就是第1章,主要介紹了對企業網站架構的選型、系統的快速安裝及初始化高性能系統的一些參數。第二篇為負載應用篇,包括第2章到第4章,分別介紹了LVS+KeepAlived、HAproxy、Nginx這3種負載開源軟件的應用。第三篇為頁面緩存篇,包括第5章、第6章和第7章;分別介紹了緩存軟件Squid和Varnish,以及Nginx的緩存功能。第四篇為Web服務器篇,包括第8章和第9章,分別介紹了Apache、Lighttpd和Nginx這三款流行的Web服務器。第五篇為數據緩存篇(NoSQL),包括第10章、第11章和第12章,分別介紹了Memcached,以及兩種當前非常流行的NoSQL數據庫軟件Redis和MongoDBC。第六篇為文件服務篇,包括第13章和第14章,介紹了MFS和Hadoop。第七篇監控應用篇,也是最后一篇,包括第15章和第16章,介紹了流量監控軟件Cacti和系統監視軟件Zabbix。附錄部分,分別給出了使用ipvsadm命令、HAProxy和Squid的有用參考資料。
《高性能網站構建實戰》是作者多年Linux系統架構和運維經驗的總結,兼具宏觀性知識介紹和具體性實踐技能,適合對系統架構、性能維護感興趣的初級、中級讀者學習,對于有經驗的系統架構師和運維師也有一定的參考借鑒價值。
劉鑫,運維工程師,曾擔任過系統講師,喜歡討論各種網站架構上的技術,特別是對系統級的優化。對整體網站架構的把握以及各種架構中運用的技術有一定的實施心得。對Python情有獨鐘,喜歡編寫運維自動化工具。他是ChinaUnix社區集群和高可用版塊資深版主,經常在社區內發起技術討論,深受廣大CU(ChinaUnix)社區會員喜愛。
第一篇 架構規劃篇
第1章 網站架構簡介
1.1 網站的硬架構
1.1.1 機房的選擇
1.1.2 帶寬的大小
1.1.3 服務器的劃分
1.2 網站的軟架構
1.2.1 框架的選擇
1.2.2 邏輯的分層
1.3 網站架構需要考慮的幾個問題
1.3.1 HTML靜態化
1.3.2 圖片服務器分離
1.3.3 數據庫集群和庫表散列
1.3.4 緩存
1.3.5 鏡像
1.3.6 負載均衡
1.4 操作系統的選擇及參數優化
1.4.1 用U盤自動安裝操作系統
1.4.2 系統初始化
1.5 小結
第二篇 負載應用篇
第2章 LVS+KeepAlived實現高可用集群
2.1 軟硬負載應用介紹
2.1.1 Linux集群簡介
2.1.2 硬件負載介紹
2.1.3 軟件負載介紹
2.2 搭建LVS+KeepAlived環境
2.2.1 LVS的模式原理以及算法
2.2.2 KeepAlived簡介
2.2.3 LVS+KeepAlived環境的實踐
2.3 FAQ
2.4 小結
第3章 高性能負載均衡器HAProxy
3.1 HAProxy簡介及定位
3.2 HAProxy的環境配置
3.2.1 HAProxy的編譯安裝
3.2.2 HAProxy配置文件詳解
3.2.3 HAProxy參數優化
3.3 配置HAProxy日志
3.4 FAQ
3.5 小結
第4章 輕量級的負載Nginx
4.1 Nginx和LVS的比較
4.2 Nginx和HAProxy對比
4.3 Nginx的負載實現
4.3.1 Nginx的安裝
4.3.2 Nginx配置文件詳解
4.4 FAQ
4.5 小結
第三篇 頁面緩存篇
第5章 經久不衰的Squid
5.1 Squid緩存簡介
5.1.1 網站緩存簡介
5.1.2 Squid緩存
5.2 Squid實踐部署
5.2.1 Squid的編譯安裝
5.2.2 Squid透明緩存的配置
5.2.3 Squid反向代理的配置
5.2.4 Squid配置文件詳解
5.2.5 Squid緩存管理
5.3 Sarg使用簡介
5.4 FAQ
5.5 小結
第6章 高性能緩存服務器Varnish
6.1 Varnish緩存簡介
6.1.1 Varnish的結構特點
6.1.2 Varnish和Squid的對比
6.2 Varnish實踐部署
6.2.1 Varnish編譯安裝
6.2.2 Varnish緩存的配置
6.2.3 Varnish配置文件詳解
6.2.4 Varnish啟動等管理工具
6.3 FAQ
6.4 小結
第7章 輕量級緩存服務器Nginx
7.1 Nginx緩存簡介
7.1.1 Nginx的緩存方式
7.1.2 三種緩存的對比
7.2 Nginx實踐部署
7.2.1 Nginx編譯安裝
7.2.2 Nginx緩存的配置
7.2.3 Nginx配置文件詳解
7.2.4 Nginx緩存命中率配置
7.3 FAQ
7.4 小結
第四篇 Web服務器篇
第8章 Apache組建高穩定性Web服務器
8.1 Apache簡介
8.2 Apache的實踐
8.2.1 Apache的安裝
8.2.2 Apache的配置
8.2.3 Apache啟動與停止
8.2.4 Apache配置文件詳解
8.2.5 Apache日志切割
8.2.6 Apache實用第三方模塊
8.3 小結
第9章 兩款常用的小型Web服務器
9.1 Nginx的Web實踐
9.1.1 Nginx的安裝
9.1.2 Nginx的Web配置
9.1.3 Nginx配置文件詳解
9.2 Nginx小結
9.3 Lighttpd簡介
9.4 Lighttpd實踐
9.4.1 Lighttpd安裝
9.4.2 Lighttpd配置
9.4.3 Lighttpd配置文件詳解
9.5 FAQ
9.6 小結
第五篇 數據緩存篇
第10章 高性能內存對象緩存Memcached
10.1 NoSQL簡介
10.1.1 什么是NoSQL
10.1.2 NoSQL的特點
10.1.3 NoSQL開源軟件介紹
10.2 Memcached實踐
10.2.1 Memcached簡介
10.2.2 Memcached的原理
10.2.3 Memcached的使用
10.2.4 Memcache安裝啟動
10.2.5 Memcached的復制功能
10.2.6 Memcached管理
10.2.7 Memcached的安全
10.3 小結
第11章 高性能的key-value數據庫Redis
11.1 Redis簡介
11.1.1 什么是Redis
11.1.2 Redis的數據結構
11.1.3 Redis性能
11.2 Redis的實踐
11.2.1 Redis的安裝
11.2.2 Redis的配置
11.2.3 Redis的啟動停止
11.2.4 Redis的配置文件詳解
11.2.5 Redis的管理
11.3 FAQ
11.4 小結
第12章 MongoDB構建分布式文件存儲的數據庫
12.1 MongoDB簡介
12.1.1 什么是MongoDB
12.1.2 MongoDB的特點
12.1.3 MongoDB適用場景
12.2 MongoDB的實踐
12.2.1 MongoDB安裝啟動
12.2.2 MongoDB常用命令
12.2.3 MongoDB主從配置
12.2.4 MongoDB管理工具
12.3 FAQ
12.4 小結
第六篇 文件服務篇
第13章 MFS組建分布式文件系統
13.1 分布式文件系統簡介
13.1.1 分布式文件系統概述
13.1.2 分布式文件系統架構
13.1.3 常見的開源分布式文件系統
13.2 MFS的實踐
13.2.1 MFS簡介
13.2.2 MFS安裝啟動
13.2.3 MFS配置文件詳解
13.2.4 MFS操作
13.3 FAQ
13.4 小結
第14章 云計算之Hadoop的組建
14.1 Hadoop簡介
14.1.1 Hadoop特點
14.1.2 Hadoop架構
14.1.3 Hadoop主要子項目
14.2 Hadoop實踐部署
14.2.1 Hadoop安裝
14.2.2 Hadoop集群的配置
14.2.3 Hadoop啟動
14.2.4 Hadoop測試
14.2.5 安裝第三臺slave服務器
14.2.6 安裝pig
14.2.7 安裝hive
14.2.8 安裝jobtracker服務器
14.3 Hadoop參數優化
14.4 FAQ
14.5 小結
第七篇 監控應用篇
第15章 服務器監控之Cacti
15.1 Cacti概述
15.2 Cacti實踐部署
15.2.1 Cacti編譯安裝
15.2.2 Cacti的使用
15.2.3 Cacti的模板使用
15.2.4 Cacti的插件使用
15.3 FAQ
15.4 小結
第16章 組建企業級分布式監控系統之Zabbix
16.1 Zabbix簡介
16.1.1 Zabbix的組成
16.1.2 Zabbix監控功能優劣對比
16.2 Zabbix的實踐
16.2.1 Zabbix的安裝配置
16.2.2 為Zabbix添加新主機
16.3 Linux流量監控工具iftop
16.4 性能監視和分析工具Nmon
16.5 FAQ
16.6 小結
附錄A ipvsadm命令參考
附錄B HAProxy關鍵字列表
附錄C Squid客戶端命令行參考