目录
第1章 Linux服务器的构建基础 1
1.1 Linux服务器的安装方法 1
1.1.1 光盘安装Centos5.5 x86_64 1
1.1.2 使用PXE+DHCP+Apache+KickStart无人值守安装RHEL 13
1.1.3 Linux其他的安装方法 19
1.2 明明白白你的Linux服务器 20
1.2.1 查看Linux服务器的CPU详细情况 20
1.2.2 查看Linux服务器的内存使用情况 24
1.2.3 查看Linux服务器的硬盘使用情况 26
1.2.4 查看Linux系统的平均负载 31
1.2.5 查看Linux系统的其他参数 33
1.3 Linux服务器的网络配置 37
1.3.1 配置Linux服务器的网络(比如IP、网关、DNS等) 37
1.3.2 查看Linux服务器的网络连接 41
1.3.3 查看Linux服务器的进程 52
1.3.4 在Centos5.5、FreeBSD8.1及Windows下添加静态路由 61
1.4 Linux服务器的日志管理 64
1.4.1 系统日志syslog.conf的配置详解 64
1.4.2 Linux下的日志维护技巧 66
1.4.3 用Shell脚本分析Nginx日志 70
1.5 Linux服务器的优化 74
1.5.1 如何根据服务器应用来选购服务器 74
1.5.2 Centos5.5最小化安装后的优化 80
1.5.3 优化Linux下的内核TCP参数以提高系统性能 87
1.5.4 生产服务器应尽量选择编译安装软件包 90
1.6 用开源工具Nagios监控Linux服务器 91
1.6.1 简单介绍Centos5.5下的监控工具 91
1.6.2 Nagios应该监控的服务器基础选项 92
1.6.3 Nagios监控Windows 2003时应注意的事项 93
1.6.4 用Nagios监控Nginx脚本 95
1.6.5 总结工作中的Nagios使用心得 101
1.7 项目实施中我们应该注意的事项 103
1.8 小结 106
第2章 FreeBSD8.1在企业中的部署应用 107
2.1 最小化安装FreeBSD8.1 x86_64 107
2.2 最小化安装FreeBSD8.1后的升级优化部署 124
2.2.1 最小化安装FreeBSD8.1服务器后建议做的事 125
2.2.2 系统管理员应该知道的FreeBSD8.1的相关事项 132
2.2.3 在FreeBSD8.1下有效率地安装和卸载软件 138
2.2.4 查看FreeBSD8.1的硬件配置 139
2.3 在FreeBSD8.1下部署jail虚拟机 143
2.3.1 FreeBSD8.1下的jail概述 143
2.3.2 FreeBSD8.1下安装jail的详细步骤 144
2.3.3 FreeBSD8.1下jail的管理 146
2.3.4 通过ezjail来创建和管理jail虚拟机 147
2.3.5 jail在生产环境下的注意事项 151
2.4 在FreeBSD8.1下搭建版本控制服务器 151
2.4.1 版本控制软件的概念 151
2.4.2 在FreeBSD8.1下搭建CVS服务器 152
2.4.3 在FreeBSD8.1下搭建SVN服务器 156
2.4.4 在FreeBSD8.1下搭建Git服务器 161
2.5 在FreeBSD8.1下搭建Samba文件服务器 166
2.5.1 Samba概述 166
2.5.2 在FreeBSD8.1下安装配置samba3.4 167
2.5.3 Samba的详细语法配置 168
2.5.4 Samba在工作中的总结 171
2.5.5 Linux下的高级权限文件控制 172
2.5.6 Samba在企业开发环境中的常用案例之一 175
2.5.7 Samba在企业开发环境中的应用案例之二 177
2.6 在FreeBSD8.1下配置NFS文件服务器 181
2.7 在FreeBSD8.1与Centos5.5下搭建rsync服务器 184
2.7.1 rsync的概念 184
2.7.2 在Centos5.5下配置rsync服务器 185
2.7.3 在FreeBSD8.1下配置rsync服务器 189
2.7.4 rsync+inotify实现数据的实时同步更新 192
2.8 在FreeBSD8.1下搭建vsftpd服务器 196
2.8.1 vsftpd服务器的特点 196
2.8.2 vsftpd的运行模式 197
2.8.3 vsftpd的数据连接模式 198
2.8.4 vsftpd到底安全在哪里 199
2.8.5 在FreeBSD8.1下配置vsftpd服务器 200
2.8.6 用vsftpd 作Linux/Unix之间的异地备份 202
2.9 在FreeBSD8.1和Centos5.5下搭建PHP和Java应用环境 204
2.9.1 在FreeBSD8.1下搭建FAMP环境 204
2.9.2 在生产环境下配置LNMP环境 208
2.9.3 在Centos5.5下搭建Java运行环境 232
2.10 FreeBSD的功能特点和应用范围 237
2.11 小结 240
第3章 Linux服务器虚拟化 241
3.1 在Windows Server 2003下安装VMware GSX Server 241
3.2 用Windows 2003+VMware Server搭建64位系统测试环境 246
3.3 在Centos5.6 x86_64下安装XEN虚拟机 249
3.3.1 XEN虚拟机的工作原理 249
3.3.2 XEN在Centos5.6 x86_64下的安装步骤 252
3.3.3 XEN虚拟机的优势 255
3.4 XEN在生产环境下的应用 256
3.4.1 XEN虚拟化的基本概念 256
3.4.2 在Centos5.5下安装XEN虚拟机 258
3.4.3 安装第一台虚拟机(模板机) 262
3.4.4 XEN寄宿服务器的管理 265
3.4.5 XEN在生产环境下的应用 269
3.5 Citrix XenServer5.6虚拟机试用手记 272
3.6 小结 281
第4章 生产环境下服务器的故障诊断与排除 282
4.1 快速排障的重要性和必要性 282
4.2 安装系统时容易发生的错误描述与处理方法 282
4.2.1 忘记了Centos5.5的root密码怎么办? 282
4.2.2 正确重设root密码 285
4.2.3 安装FreeBSD8.1时不要设置/boot分区 286
4.2.4 Centos5.5的Grub引导程序出错 287
4.2.5 安装Centos5.5时忘了关闭iptalbes和SElinux 288
4.2.6 如何解决Putty或PieTTY的乱码问题 289
4.2.7 安装双系统时不小心删除了GRUB所在的分区 289
4.3 网络配置时容易发生的错误描述与处理方法 292
4.3.1 安装Centos5.5时忘了激活网卡 292
4.3.2 Centos5.5网卡文件备份的正确方法 293
4.3.3 解决远程桌面超出最大连接数的问题 294
4.3.4 在Cetnos5.5下如何正确配置网关 295
4.3.5 VMware的机器应该如何配置自动对时 296
4.3.6 防火墙初始化的注意事项 297
4.4 系统维护时应该注意的地方 297
4.4.1 尽量源码安装,谨慎操作yum 298
4.4.2 服务器硬件改动进入了Emergency模式 298
4.4.3 如何以普通用户的身份编辑无权限的文件 299
4.4.4 在Linux下配置最大文件打开数的方法 299
4.4.5 在crontab下运行PHP程序的正确方法 301
4.4.6 在crontab下正确防止脚本运行冲突 301
4.5 紧急处理线上服务器故障的办法 302
4.5.1 更改Administrator密码导致计划任务无法执行 302
4.5.2 FreeBSD8.1下的sudoer文件意外损坏 303
4.5.3 Centos5.5的root密码被恶意篡改 303
4.5.4 BASH损坏该如何正确处理 304
4.5.5 正确操作nohup让程序始终在后台运行 305
4.5.6 负载均衡器出现故障 305
4.6 检查机房应注意的位置和细节问题 306
4.7 系统维护时应注意的非技术型因素 307
4.8 小结 307
第5章 生产环境下的SHELL脚本 309
5.1 Vim的基础用法及进阶心得 310
5.2 SED的基础用法及实用举例 315
5.2.1 SED的基础语法格式 315
5.2.2 SED的用法举例说明 319
5.3 基础正则表达式 325
5.4 Linux下强大的查找命令Find 331
5.5 汇总Linux/unix下的BASH快捷键 342
5.6 生产环境下的SHELL脚本分类 344
5.6.1 生产环境下的shell脚本备份类 344
5.6.2 生产环境下的开发类SHELL脚本 355
5.6.3 生产环境下的统计类SHELL脚本 357
5.6.4 生产环境下的监控类SHELL脚本 362
5.6.5 生产环境下的自动化类SHELL脚本 366
5.6.6 生产环境下的安全类SHELL脚本 371
5.7 小结 375
第6章 构建高可用的Linux集群(项目案例分享) 376
6.1 负载均衡高可用核心概念及常用软件 376
6.1.1 什么是负载均衡高可用 376
6.1.2 以F5 BIG-IP作为负载均衡器 377
6.1.3 以LVS作为负载均衡器 378
6.1.4 以Nginx作为负载均衡器 387
6.1.5 以HAProxy作为负载均衡器 389
6.1.6 高可用软件Keepalived 390
6.1.7 高可用软件Heartbeat 391
6.1.8 高可用块设备DRBD 392
6.2 负载均衡中的名词解释 393
6.2.1 什么是Session 393
6.2.2 什么是Session共享及实现的方法 394
6.2.3 什么是会话保持 395
6.3 负载均衡器的会话保持机制 396
6.3.1 F5 BigIP的会话保持机制 396
6.3.2 LVS的会话保持机制 398
6.4 Linux集群的项目案例分享 411
6.4.1 项目案例一:用Nginx+Keepalived实现在线票务系统 411
6.4.2 项目案例二:企业级Web负载均衡高可用之Nginx+Keepalived 416
6.4.3 项目案例三:企业级Web负载均衡高可用之LVS+Keepalived 430
6.4.4 项目案例四:用LVS+Keepalived构建高可用JSP集群 440
6.4.5 项目案例五:生产环境下的高可用NFS文件服务器 450
6.4.6 项目案例六:HAProxy双机高可用方案之HAProxy+Heartbeat 462
6.5 项目实践中Linux集群的总结和思考 468
6.6 网站架构应关注和研究的方向 471
6.7 MySQL数据库的优化 473
6.7.1 服务器物理硬件的优化 473
6.7.2 MySQL应该采用编译安装的方法 474
6.7.3 MySQL配置文件的优化 474
6.7.4 MySQL上线后根据status状态进行适当优化 480
6.7.5 MySQL数据库的可扩展性架构方案 489
6.7.6 MySQL数据库的Replication高可用架构 489
6.7.7 MySQL Cluster集群配置方案 491
6.7.8 生产环境下的MySQL数据库主从Replication同步 500
6.7.9 可扩展性设计之数据切分 510
6.8 生产环境下的MySQL数据库备份 512
6.9 部分项目施工图纸 516
6.10 小结 517
第7章 ×××在企业中的部署应用 519
7.1 流行的×××技术及其分类 519
7.2 如何选择自己需要的××× 522
7.3 IPsec ×××的不足 523
7.4 Open×××的应用范畴 523
7.5 经典企业×××部署案例 524
7.5.1 案例一:在CentOS5.5 x86_64下单网卡配置PPTPD服务器 524
7.5.2 案例二:在CentOS5.5 x86_64下路由模式配置Open×××服务器 533
7.5.3 案例三:在FreeBSD8 x86_64下网桥模式配置Open×××服务器 551
7.6 部署Open×××服务器的注意事项 559
7.6.1 Open×××如何注销用户 559
7.6.2 Open×××服务器的安全问题 561
7.6.3 Open×××服务器的负载均衡 562
7.7 小结 562
第8章 Linux防火墙及系统安全篇 564
8.1 基础网络知识 564
8.1.1 OSI网络参考模型 564
8.1.2 TCP/IP三次握手/四次挥手的过程详解 566
8.1.3 其他基础网络知识 568
8.2 Linux防火墙的概念 569
8.3 Linux防火墙在企业中的作用 570
8.4 Linux防火墙的语法 571
8.5 iptables的基础知识 576
8.5.1 iptables的状态state 576
8.5.2 iptables的Conntrack记录 578
8.5.3 关于iptables模块的说明 579
8.5.4 iptables防火墙初始化的注意事项 580
8.5.5 如何保存运行中的iptables规则 580
8.6 如何流程化编写iptables脚本 581
8.7 学习iptables应该掌握的工具 584
8.7.1 命令行的抓包工具TCPDump 584
8.7.2 图形化抓包工具Wireshark 586
8.7.3 强大的命令行扫描工具Nmap 589
8.7.4 安全工具hping 592
8.8 iptables的简单脚本学习 595
8.8.1 普通的Web主机防护脚本 595
8.8.2 如何让别人ping不到自己,而自己能ping通别人呢? 597
8.8.3 建立安全的vsftpd服务器 600
8.9 线上生产服务器的iptables脚本 606
8.9.1 安全的主机iptables防火墙脚本 607
8.9.2 自动分析黑名单及白名单的iptables脚本 610
8.9.3 利用recent模块限制同一IP的连接数 613
8.9.4 利用DenyHosts工具和脚本来防止SSH暴力破解 616
8.9.5 将iptables作为企业的NAT路由器 622
8.9.6 如何使用工具精确地监控NAT路由器 625
8.10 TCP_wrappers应用级防火墙的介绍和应用 634
8.11 工作中的Linux防火墙总结 637
8.12 Linux系统自身的安全防护 639
8.12.1 SELinux简介 639
8.12.2 SELinux的相关设置 639
8.13 Linux系统安全相关的工具 641
8.13.1 Rootkit检测工具Chkrootkit 641
8.13.2 文件系统完整性检查工具Tripwire 644
8.13.3 防恶意扫描软件PortSentry 651
8.14 Linux服务器基础防护篇 657
8.15 如何防止*** 659
8.16 小结 660
第9章 如何构建开源免费的企业级邮件系统 661
9.1 DNS服务器的架设 661
9.1.1 邮件服务器与DNS的关系 661
9.1.2 如何架设内部DNS服务器 664
9.1.3 如何源码安装公DNS服务器 673
9.1.4 维护DNS服务器应该注意的事项 683
9.2 电子邮件的传输过程 687
9.3 如何搭建开发邮件服务器 689
9.3.1 搭建Sendmail+Dovecot邮件系统 689
9.3.2 搭建Postfix+Dovecot邮件系统 693
9.4 搭建iRedmail企业级邮件服务器 697
9.4.1 iRedmail企业级邮件服务器的介绍 697
9.4.2 在Centos5.2 x86_64上安装iRedmail0.4.0 699
9.4.3 Postfix本身的防垃圾功能 702
9.4.4 iRedmail0.4.0特有的防垃圾技术 709
9.4.5 iRedmail0.4是如何利用ClamAV防病毒的 713
9.4.6 iRedmail0.4.0邮件服务器的网络安全 715
9.4.7 iRedmail0.4.0邮件服务器系统的监控 718
9.4.8 iRedmail0.4.0的系统文件备份 721
9.4.9 iRedmail0.4.0的MySQL数据库备份方案 726
9.4.10 维护iRedmail0.4.0邮件服务器的一些注意事项 733
9.5 小结 735
第10章 系统管理员在企业中的职业定位及发展方向 737
10.1 系统管理员的概念和工作职责 737
10.2 系统管理员应该熟悉的系统 738
10.3 系统管理员应该熟悉的工具 744
10.4 Linux的学习及进阶之路 750
10.5 系统管理员应该如何工作 755
10.6 给Linux/Unix新人的建议 757
10.7 系统管理员之企业生存守则 759
10.8 小结 763
附录A Xmanager 3.0企业版实用技巧集锦 764
附录B 使用Screen管理远程会话 779
附录C 自动化部署管理工具Puppet 781