第1章 引子:拥抱开源,上上之选 1
第2章 定制化安装操作系统 3
2.1 概述 4
2.1.1 为什么需要定制化安装操作系统 4
2.1.2 定制化安装操作系统所包含的主要项目 4
2.1.3 定制化安装操作系统的原则 5
2.2 定制安装CentOS 5 5
2.2.1 初始引导阶段 6
2.2.2 定制分区阶段 6
2.2.3 系统配置阶段 9
2.2.4 包选择阶段 12
2.2.5 正式安装阶段 13
2.2.6 第一次重启设定阶段 14
2.3 定制化安装FreeBSD 14
2.3.1 初始引导阶段 14
2.3.2 定制阶段 15
2.3.3 安装介质选择阶段 20
2.3.4 安装阶段 20
2.3.5 系统设定阶段 21
2.3.6 安装检查 22
2.4 从U盘引导安装CentOS到服务器 23
2.4.1 基本思路和需求 23
2.4.2 安装前的处理 24
2.4.3 开始安装 28
2.5 高级特性以及非技术策略 29
2.5.1 安装系统经验之谈 29
2.5.2 选择哪一种操作系统更好 29
2.5.3 规避失败 29
第3章 动态网站 31
3.1 概述 32
3.2 部署Apache服务 33
3.2.1 安装Apache 33
3.2.2 检验安装情况 34
3.3 安装MySQL 35
3.3.1 安装MySQL客户端程序 35
3.4 Apache整合PHP 36
3.4.1 安装PHP 36
3.4.2 验证安装 39
3.4.3 牛刀小试:部署一个Blog 40
3.4.4 整合自动化 43
3.5 Apache整合Tomcat 51
3.5.1 安装JDK 51
3.5.2 安装Tomcat 52
3.5.3 整合 52
3.5.4 整合验证 55
3.6 动态站点的运行维护 55
3.6.1 状态查看及监控 55
3.6.2 故障处理 56
3.6.3 数据备份/恢复/站点迁移 57
3.7 动态站点故障处理实例汇集 58
3.7.1 案例一:Httpd-2.2.0虚拟主机目录权限问题 58
3.7.2 案例二:一次故障处理过程 60
3.7.3 案例三:数据库引起的故障 63
第4章 域名系统Bind 65
4.1 Bind基本功能的实现 66
4.1.1 安装Bind 66
4.1.2 配置Bind 68
4.1.3 启动和验证Bind服务 77
4.2 多域名DNS服务 80
4.2.1 主配置文件的更新 80
4.2.2 撰写区数据文件formyz.net.zone 81
4.2.3 启动和验证Bind 81
4.3 带视图功能View的DNS系统 81
4.3.1 场景描述 82
4.3.2 配置Bind View 83
4.4 辅助DNS服务 88
4.4.1 TSIG key 88
4.4.3 区数据文件 94
4.4.4 启动和验证主从DNS服务 94
4.5 DNS运行维护 95
4.5.1 数据备份 95
4.5.2 状态监控 95
4.5.3 故障处理 96
第5章 Postfix电子邮件系统 97
5.1 需求及所需环境 98
5.2 前期准备工作 100
5.2.1 下载所需的软件 100
5.2.2 清理系统 100
5.2.3 创建邮件系统运行时所需的用户和组 101
5.3 安装Web应用环境 102
5.3.1 安装Apache 102
5.3.2 安装MySQL 103
5.3.3 安装PHP 104
5.4 安装和配置SASL及Authlib 106
5.4.1 安装和配置courier-authlib 106
5.4.2 安装和配置SASL 108
5.5 安装和配置Postfixadmin 110
5.5.1 修改相关的配置文件 110
5.5.2 在MySQL中创建Postfix所需的数据库 115
5.5.3 测试Postfixadmin 115
5.6 Postfix的安装和配置 116
5.6.1 安装Postfix 117
5.6.2 配置Postfix 117
5.7 Courier-imap的安装和配置 124
5.7.1 安装Courier-imap 124
5.7.2 修改配置文件 125
5.7.3 复制文件courier-imap.sysvinit 125
5.7.4 测试IMAP服务 125
5.7.5 使用POP3 over ssl 125
5.8 安装Courier-maildrop 126
5.9 邮件病毒检查和垃圾邮件过滤 129
5.9.1 安装和配置Clamav 129
5.9.2 安装和配置Amavis-new 131
5.10 Webmail的安装和配置 132
5.10.1 安装Extmail 133
5.10.2 配置Extmail 134
5.11 验证所有的配置 138
5.11.1 Apache、MySQL和PHP环境验证 139
5.11.2 Authlib验证 139
5.11.3 病毒库和垃圾邮件列表更新 139
5.11.4 Postfix及IMAP 139
5.11.5 防病毒及反垃圾邮件 140
5.11.6 总体功能验证 140
5.12 邮件系统维护 141
5.12.1 状态及服务监控 141
5.12.2 故障处理 141
5.12.3 数据备份 142
5.12.4 账号管理 144
5.12.5 安全防护 144
5.13 高级特性和杂项 148
5.13.1 多邮件域及用户限额 148
5.13.2 密码不匹配问题 148
5.13.3 来自网友的博文——配置Postfix成功之后想说的事情 149
5.13.4 某个专门的Postfix邮件服务器运行时的进程快照 150
第6章 负载均衡及服务器集群(LVS) 155
6.1 LVS核心IPVS 157
6.1.1 安装IPVS 157
6.1.2 LVS客户端 158
6.1.3 LVS客户端的验证 160
6.2 故障隔离、失败切换框架Keepalived 163
6.2.1 Keepalived的体系结构 163
6.2.2 Keepalived的安装 164
6.2.3 Keepalived的安装验证 165
6.2.4 配置文件keepalived.conf 168
6.3 CDN缓存服务器的负载均衡(LVS+Keepalived) 173
6.3.1 CDN缓存服务器集群场景 173
6.3.2 CDN缓存服务器集群部署 174
6.3.3 负载均衡服务的启用和验证 180
6.4 多vrrp_instance负载均衡的应用 185
6.4.1 多vrrp_instance负载均衡的需求描述 185
6.4.2 多VRRP负载均衡集群的部署 186
6.4.3 多vrrp instance负载均衡集群功能测试 192
6.5 LVS负载均衡集群的运行维护 194
6.5.1 对象的新增、变更及删除 194
6.5.2 状态监控 196
6.5.3 故障的排查处理 196
6.5.4 数据备份 198
6.6 杂项 198
6.6.1 LVS负载均衡转发模式及调度算法 198
6.6.2 负载均衡器的调度算法 199
6.6.3 LVS负载均衡环境的安全问题 200
6.6.4 同义词 200
6.6.5 关于负载均衡器后面真实服务器的数量 200
6.6.6 话题讨论 200
第7章 简单CDN 201
7.1 CDN概述 202
7.1.1 为什么使用CDN 202
7.1.2 CDN适用的场合 203
7.1.3 CDN的组成 203
7.1.4 CDN的基本特点 204
7.1.5 什么是简单CDN 205
7.2 简单CDN 设计 206
7.2.1 简单CDN设计的基本原则 207
7.2.2 需求描述 207
7.2.3 简单CDN的设计 207
7.3 简单CDN的实现 210
7.3.1 源站的部署和运行 210
7.3.2 缓存服务器的部署和运行 214
7.3.3 智能DNS的部署和运行 220
7.4 简单CDN的整体效果测试 238
7.5 简单CDN的平台监控 239
7.5.1 主机资源监控 239
7.5.2 服务监控 239
7.5.3 页面内容监控 239
7.6 简单CDN系统上线 240
7.7 简单CDN的运行维护 240
7.7.1 缓存刷新操作 240
7.7.2 备份数据 242
7.7.3 故障处理与恢复 242
7.7.4 增加CDN布点 242
7.8 杂项 242
7.8.1 部署CDN的重点和难点 242
7.8.2 取得和归类中国大陆IP地址列表 243
7.8.3 应急处理 244
第8章 分布式文件系统MooseFS 245
8.1 关于MooseFS 247
8.1.1 MFS的特性 247
8.1.2 MFS文件系统的组成 248
8.1.3 MFS读写处理过程 248
8.2 元数据服务器的安装和配置 250
8.2.1 安装元数据服务 250
8.2.2 配置元数据服务 251
8.2.3 启动元数据服务器Master 253
8.2.4 关闭元数据服务器 254
8.3 元数据日志服务器的安装和配置 254
8.3.1 安装元数据日志服务器 254
8.3.2 配置元数据日志服务器 255
8.3.3 运行及关闭元数据日志服务 256
8.4 数据存储服务器的安装和配置 256
8.4.1 安装数据存储服务器 257
8.4.2 配置数据存储服务器 257
8.4.3 启动数据存储服务器 258
8.4.4 关闭数据存储服务器 259
8.5 MFS客户端的安装和配置 259
8.5.1 CentOS作为MFS的客户端 259
8.5.2 FreeBSD作为MFS的客户端 261
8.6 破坏性测试 266
8.6.1 测试数据存储服务器 266
8.6.2 测试元数据服务器 266
8.7 性能测试 268
8.8 MFS系统维护 270
8.9 MFS安装向导 271
8.9.1 概述 271
8.9.2 在专用服务器安装MooseFS的基本步骤 271
8.9.3 主控服务器Master Server的安装 271
8.9.4 备份服务器的安装 274
8.9.5 存储块服务器Chunk Server的安装 275
8.9.6 客户端Users'computers的安装 276
8.9.7 在同一个主机上安装MooseFS 277
8.9.8 MooseFS的基本用法 280
8.9.9 停止MooseFS 282
第9章 MySQL数据库 283
9.1 安装MySQL 284
9.1.1 安装软件 284
9.1.2 MySQL配置 285
9.1.3 MySQL服务器的启动及检验 287
9.2 MySQL主从复制 288
9.2.1 场景描述 289
9.2.2 主从复制配置 289
9.3 MySQL的备份与恢复 292
9.3.1 完全备份 293
9.3.2 增量备份 296
9.3.3 备份策略 298
9.3.4 数据恢复实例 299
9.4 MySQL数据库的监控 299
9.4.1 模拟用户访问的监控 299
9.4.2 MySQL主从复制的监控 300
9.5 MySQL数据库的维护 302
第10章 云计算之Hadoop 303
10.1 Hadoop概述 304
10.2 Hadoop项目状况 305
10.3 部署Hadoop 306
10.3.1 名称节点无密码访问各数据节点 306
10.3.2 安装JDK 306
10.3.3 安装和配置Hadoop 307
10.3.4 初始化和启动/停止Hadoop集群 312
10.3.5 Hadoop功能测试 314
10.4 Hadoop部署Hive 315
10.5 部署Hadoop桌面工具Cloudera-desktop 317
10.6 Hadoop应用实例 318
10.7 Hadoop杂项 323
第11章 网关服务 325
11.1 内部网络出口网关 326
11.1.1 某小公司的出口网关概况 326
11.1.2 撰写运行网关服务所需的shell脚本 326
11.1.3 启用网关服务 329
11.2 VPN网关 330
11.2.1 安装 330
11.2.2 VPN的拓扑结构 330
11.2.3 VPN服务器端的配置 331
11.2.4 运行VPN网关服务 332
11.2.5 客户端配置(Windows) 332
11.2.6 拨号登录 332
11.2.7 设置路由及IP伪装 335
11.3 GRE隧道服务 336
11.3.1 GRE隧道场景描述 336
11.3.2 GRE配置 337
11.3.3 GRE隧道功能验证 338
11.4 VPN及GRE隧道安全问题 338
第12章 监控系统Nagios 339
12.1 Nagios概述 340
12.2 Nagios监控场景描述 340
12.3 Nagios服务器的自我监控实现 342
12.3.1 配置邮件发送功能 342
12.3.2 测试短信发送 342
12.3.3 安装Apache 344
12.3.4 部署Nagios服务 346
12.3.5 部署NRPE 356
12.3.6 启动Nagios服务 359
12.4 Nagios监控MySQL服务器 360
12.4.1 在MySQL服务器上安装NRPE 361
12.4.2 创建MySQL访问用户Nagios 361
12.4.3 Nagios服务器上的操作 361
12.5 Nagios监控MySQL主从复制 363
12.6 Nagios监控其他服务器 363
12.7 监控错误日志实例 363
12.8 使用脚本部署NRPE 364
12.9 Nagios故障处理汇集 366
12.9.1 Nagios不能发送飞信报警 367
12.9.2 FreeBSD下解决Nagios不发送报警邮件的问题 368
12.10 Nagios监控策略 372
12.10.1 策略一:监控对象的选择 372
12.10.2 策略二:故障报警方式的选择 372
12.10.3 策略三:故障报警时效和间隔的选择 373
12.10.4 策略四:监控平台地点的选择 373
12.10.5 策略五:流量控制和安全 373
第13章 高可用、可扩展、负载均衡解决方案的设计与实践 375
13.1 高考中国网现行的运行架构 376
13.2 功能需求 377
13.2.1 高可用 377
13.2.2 可扩展 377
13.2.3 负载均衡 377
13.2.4 平台状态可视化 378
13.3 方案选择 378
13.3.1 主机部件扩容 379
13.3.2 应用分拆 379
13.3.3 高可用、可扩展、负载均衡解决方案 381
13.3.4 方案选定 381
13.4 高可用、可扩展、负载均衡解决方案的设计 382
13.4.1 系统总体架构 382
13.4.2 总体架构中各层的作用 383
13.4.3 网络划分 385
13.4.4 系统架构评价 386
13.5 部件/工具的选择 386
13.5.1 负载均衡层的部件选择 386
13.5.2 应用层的部件选择 388
13.5.3 分布式文件系统及数据库层的部件选择 389
13.5.4 网络设备的选择 390
13.6 辅助功能——监控系统的设计 390
13.6.1 监控平台的选择 391
13.6.2 Nagios的监控对象 391
13.7 高可用、可扩展、负载均衡总体架构的技术实现 393
13.7.1 选择服务商及硬件上架 393
13.7.2 安装操作系统及部署相关软件 393
13.7.3 测试 396
13.7.4 加固和平台运行 397
13.8 方案实施后的效果 397