本书赞誉
前 言
第1章 Linux服务器的构建与优化1
1.1 使用PXE+DHCP+Apache+Kickstart无人值守安装CentOS 5.8 x86_641
1.2 全面了解Linux服务器9
1.2.1 查看Linux服务器的CPU详细情况10
1.2.2 查看Linux服务器的内存使用情况10
1.2.3 查看Linux服务器的硬盘使用情况12
1.2.4 查看Linux系统的平均负载15
1.2.5 查看Linux系统的其他参数16
1.3 Linux服务器的网络配置19
1.3.1 配置Linux服务器的网络20
1.3.2 查看Linux服务器的网络连接22
1.3.3 查看Linux服务器的进程32
1.3.4 在CentOS 5.8、FreeBSD 8.1及Windows下添加静态路由39
1.4 Linux服务器的日志管理41
1.4.1 系统日志syslog.conf的配置详解41
1.4.2 Linux下的日志维护技巧43
1.5 Linux服务器的优化49
1.5.1 如何根据服务器应用来选购服务器49
1.5.2 CentOS 5.8最小化安装后的优化54
1.5.3 优化Linux下的内核TCP参数以提高系统性能57
1.6 用开源工具Nagios监控Linux服务器60
1.6.1 CentOS 5.8下的监控工具60
1.6.2 Nagios应该监控的服务器基础选项60
1.6.3 工作中的Nagios使用心得61
1.7 小结62
第2章 生产环境下服务器的故障诊断与排除63
2.1 快速排障的重要性和必要性63
2.2 安装系统时容易发生的错误描述与处理方法63
2.2.1 忘记CentOS 5.8的root密码怎么办63
2.2.2 正确重设root密码65
2.2.3 安装FreeBSD 8.1时不要设置/boot分区66
2.2.4 安装CentOS 5.8时忘了关闭iptalbes和SELinux67
2.3 网络配置时容易发生的错误描述与处理方法68
2.3.1 安装CentOS 5.8时忘了激活网卡68
2.3.2 CentOS 5.8网卡文件备份的正确方法69
2.3.3 在CentOS 5.8下如何正确配置网关70
2.3.4 防火墙初始化的注意事项71
2.4 系统维护时应该注意的地方71
2.4.1 服务器硬件改动进入了Emergency模式71
2.4.2 如何以普通用户的身份编辑无权限的文件72
2.4.3 在Linux下配置最大文件打开数的方法72
2.4.4 在crontab下正确防止脚本运行冲突74
2.5 紧急处理线上服务器故障的办法74
2.5.1 更改Administrator密码导致计划任务无法执行74
2.5.2 CentOS 5.8的root密码被恶意篡改75
2.5.3 bash文件损坏该如何正确处理75
2.5.4 正确操作nohup让程序始终在后台运行76
2.5.5 Nginx负载均衡器出现故障76
2.6 检查机房应注意的位置和细节问题77
2.7 系统维护时应注意的非技术因素77
2.8 小结78
第3章 生产环境下的Shell脚本79
3.1 Vim的基础用法及进阶心得80
3.2 Sed的基础用法及实用举例83
3.2.1 Sed的基础语法格式84
3.2.2 Sed的用法举例说明86
3.3 基础正则表达式91
3.4 Linux下强大的查找命令find96
3.5 汇总Linux/UNIX下的bash快捷键105
3.6 生产环境下的Shell脚本分类107
3.6.1 生产环境下的Shell脚本备份类107
3.6.2 生产环境下的开发类Shell脚本115
3.6.3 生产环境下的统计类Shell脚本116
3.6.4 生产环境下的监控类Shell脚本119
3.6.5 生产环境下的自动化类Shell脚本124
3.7 小结127
第4章 构建高可用的Linux集群128
4.1 负载均衡高可用的核心概念和常用软件128
4.1.1 什么是负载均衡高可用128
4.1.2 以F5 BIG-IP作为负载均衡器129
4.1.3 以LVS作为负载均衡器130
4.1.4 以Nginx作为负载均衡器136
4.1.5 以HAProxy作为负载均衡器137
4.1.6 高可用软件Keepalived139
4.1.7 高可用软件Heartbeat139
4.1.8 高可用块设备DRBD140
4.2 负载均衡中的名词解释141
4.2.1 什么是Session141
4.2.2 什么是Session共享及实现的方法141
4.2.3 什么是会话保持142
4.3 负载均衡器的会话保持机制143
4.3.1 F5 Big-IP的会话保持机制143
4.3.2 LVS的会话保持机制145
4.3.3 Nginx的会话保持机制148
4.3.4 HAProxy的会话保持机制148
4.4 Linux集群的项目案例分享156
4.4.1 项目案例一:用Nginx+Keepalived实现在线票务系统156
4.4.2 项目案例二:企业级Web负载均衡高可用之Nginx+Keepalived163
4.4.3 项目案例三:用LVS+Keepalived构建高可用JSP集群175
4.4.4 项目案例四:Nginx主主负载均衡架构183
4.4.5 项目案例五:生产环境下的高可用NFS文件服务器189
4.4.6 项目案例六:HAProxy双机高可用方案之HAProxy+Keepalived198
4.4.7 项目案例七:百万级PV高可用网站架构设计204
4.4.8 项目案例八:千万级PV高性能高并发网站架构设计207
4.5 软件级负载均衡器的特点对比210
4.6 项目实践中Linux集群的总结和思考212
4.7 细分五层解说网站架构214
4.8 网站架构应关注和研究的方向216
4.9 部分项目施工图纸218
4.10 小结220
第5章 MySQL性能调优及高可用案例分享221
5.1 MySQL数据库的优化221
5.1.1 服务器物理硬件的优化221
5.1.2 线上环境中MySQL应该采用的编译安装方法222
5.1.3 MySQL配置文件的优化223
5.1.4 MySQL上线后根据status状态进行适当优化227
5.2 MySQL数据库的高可用架构方案239
5.2.1 生产环境下的MySQL数据库主从Replication同步240
5.2.2 生产环境下的DRBD+Heartbeat+MySQL双机高可用250
5.2.3 利用MySQL Proxy 0.8.2实现数据的读写分离262
5.3 利用sysbench对磁盘I/O作性能测试268
5.4 生产环境下的MySQL数据库备份272
5.5 小结275
第6章 分布式自动化部署管理工具puppet276
6.1 puppet的基本概念及工作流程276
6.2 安装puppet前的准备工作279
6.3 puppet的详细安装步骤279
6.4 puppet简单的文件应用283
6.5 puppet的进阶操作289
6.5.1 如何同步puppet-agent端上的常用服务290
6.5.2 如何在puppet-agent上自动安装常用的软件包290
6.5.3 如何自动同步puppet服务器端的目录文件291
6.5.4 如何根据不同的puppet-agent名推送不同的文件292
6.5.5 如何在puppet-agent端自动执行Shell脚本295
6.5.6 如何快速同步puppet服务器端的目录文件297
6.5.7 ERB模板来自动配置Apache虚拟主机301
6.6 puppet利用Nginx多端口实现负载均衡303
6.7 puppet配置文件的管理308
6.8 小结308
第7章 开源VPN软件在企业中的应用309
7.1 流行的VPN技术及其分类309
7.2 如何选择自己需要的VPN311
7.3 PPTPD VPN在企业中的部署应用312
7.4 OpenVPN VPN在企业中的部署应用313
7.4.1 案例一:在CentOS 5.8下路由模式配置OpenVPN服务器313
7.4.2 案例二:在FreeBSD 8下网桥模式配置OpenVPN服务器324
7.5 部署OpenVPN服务器的注意事项331
7.5.1 OpenVPN如何注销用户331
7.5.2 OpenVPN服务器的安全问题332
7.6 OpenVPN VPN软件的应用范畴333
7.7 小结333
第8章 Linux防火墙及系统安全334
8.1 基础网络知识334
8.1.1 OSI网络参考模型334
8.1.2 TCP/IP中三次握手及四次挥手的过程详解335
8.1.3 其他基础网络知识337
8.2 Linux防火墙的概念337
8.3 Linux防火墙在企业中的作用338
8.4 Linux防火墙的语法339
8.5 iptables基础知识343
8.5.1 iptables的状态343
8.5.2 iptables的Conntrack记录345
8.5.3 关于iptables模块的说明346
8.5.4 iptables防火墙初始化的注意事项346
8.5.5 如何保存运行中的iptables规则346
8.6 如何流程化编写iptables脚本347
8.7 学习iptables应该掌握的工具350
8.7.1 命令行的抓包工具TCPDump350
8.7.2 图形化抓包工具Wireshark351
8.7.3 强大的命令行扫描工具Nmap354
8.8 iptables的简单脚本学习356
8.8.1 普通的Web主机防护脚本357
8.8.2 如何让别人ping通自己而自己也能ping通别人358
8.8.3 建立安全vsftpd服务器360
8.9 线上生产服务器的iptables脚本364
8.9.1 安全的主机iptables防火墙脚本365
8.9.2 自动分析黑名单及白名单的iptables脚本366
8.9.3 利用recent模块限制同一IP的连接数369
8.9.4 利用DenyHosts工具和脚本来防止SSH暴力破解371
8.10 TCP_wrappers应用级防火墙的介绍和应用378
8.11 系统运维工作中的Linux防火墙总结380
8.12 Linux系统自身的安全防护381
8.12.1 SELinux简介381
8.12.2 SELinux的相关设置381
8.13 Linux系统安全相关的工具382
8.13.1 Rootkit检测工具Chkrootkit383
8.13.2 文件系统完整性检查工具Tripwire385
8.13.3 防恶意扫描软件PortSentry390
8.14 Linux服务器基础防护篇396
8.15 如何防止入侵397
8.16 小结398
附录A Xmanager 3.0企业版实用技巧集锦399
附录B 使用Screen管理远程会话407
附录C 在CentOS 5.8 x86_64下安装及管理Xen虚拟机410
附录D 在CentOS 5.8下配置rsync服务器415