目 录
第Ⅰ部分 引言及部署
第1章 IIS背景知识及IIS 7.0
的新特性 3
1.1 从IIS 1.0到IIS 4.0 3
1.2 IIS 5.0和IIS 5.1 4
1.3 IIS 6.0 4
1.3.1 默认的安全性 5
1.3.2 处理请求 5
1.3.3 附加特性 6
1.4 IIS 7.0 7
1.5 IIS 7.0的特性 9
1.5.1 集成的请求管道 9
1.5.2 可配置性 12
1.5.3 组件化 14
1.5.4 安全性 15
1.5.5 IIS管理工具 21
1.5.6 诊断 24
1.5.7 兼容性 26
1.5.8 附加功能 26
1.6 本章小结 27
第2章 IIS 7.0的架构 29
2.1 IIS 4.0以及更早版本的IIS 29
2.1.1 Inetinfo.exe 30
2.1.2 ISAPI与CGI的比较 31
2.1.3 Active Server Page 32
2.2 IIS 5.0 32
2.3 IIS 6.0 33
2.3.1 Http.sys 33
2.3.2 IIS Admin Service 35
2.3.3 Web Administration Service 35
2.3.4 工作进程 35
2.3.5 应用程序池 36
2.4 IIS 7.0的架构 38
2.4.1 集成管道模式 38
2.4.2 可扩展性和模块化 41
2.4.3 IIS Manager的可扩展性 42
2.4.4 Metabase—— 走吧!
走吧! 走了! 42
2.4.5 WAS和工作进程 45
2.5 Windows Server 2008的架构 46
2.5.1 Server Core安装选项 46
2.5.2 虚拟化 47
2.5.3 故障转移群集功能 48
2.5.4 WCF 48
2.5.5 BitLocker加密技术 48
2.5.6 网络访问保护 49
2.6 本章小结 49
第3章 规划IIS 7.0的部署 51
3.1 Windows 2008 Server的
部署规划 51
3.1.1 Windows Server 2008
对硬件的要求 52
3.1.2 32位系统还是64位系统 53
3.1.3 使用哪个Server版本的操作
系统 53
3.1.4 升级还是全新安装 57
3.1.5 规划硬件 58
3.1.6 规划网络 60
3.1.7 规划安全性 66
3.1.8 规划备份和恢复 71
3.2 规划IIS 7.0部署 73
3.2.1 IIS 7.0的需求 73
3.2.2 安装决策 73
3.2.3 规划与IIS有关的安全性 74
3.2.4 规划开发环境 76
3.2.5 规划生产环境 77
3.2.6 共享配置 77
3.2.7 内容复制 78
3.3 应用程序部署规划 78
3.4 自动化及部署工具 79
3.4.1 Windows Deployment
Services 79
3.4.2 批量激活 80
3.5 系统能力规划 80
3.5.1 流量 81
3.5.2 WCAT 82
3.5.3 IIS 7.0请求跟踪 82
3.5.4 可伸缩性 83
3.5.5 规划应用程序的能力 83
3.6 本章小结 84
第4章 安装IIS 7.0 85
4.1 全新安装 85
4.1.1 在安装Windows Server 2008
过程中同时安装IIS 7.0 86
4.1.2 通过DVD驱动器在一台
现有的服务器上安装IIS 7.0 92
4.2 升级安装 97
4.2.1 就地升级 98
4.2.2 迁移升级 104
4.3 为现有安装添加新特性 104
4.3.1 安装新特性 104
4.3.2 配置和测试新特性 105
4.3.3 在IIS 7.0上运行
ASP.NET 1.1 107
4.4 自动安装及配置 111
4.5 从命令行安装Server Core 111
4.5.1 Pkgmgr.exe 112
4.5.2 使用pkgmgr.exe进行无人值
守安装 113
4.5.3 使用Windows Deployment Services安装 116
4.6 主机托管服务建议 117
4.6.1 目录结构 118
4.6.2 Web服务器账号和应用
程序池 120
4.6.3 使用托管代码配置共享
主机 121
4.7 共享的配置 128
4.8 在Windows Vista 平台上
安装IIS 7.0 130
4.8.1 IIS 7.0支持的Vista版本 131
4.8.2 安装IIS 7.0 131
4.9 本章小结 132
第Ⅱ部分 管 理
第5章 管理工具 135
5.1 主要特点 135
5.2 IIS Manager 136
5.2.1 IIS Manager的外观 136
5.2.2 特性内容 137
5.2.3 Features View 138
5.2.4 Content View 141
5.2.5 特性委托 141
5.3 IIS Manager的可扩展性 142
5.4 与配置有关的设置 142
5.4.1 配置文件的层次结构 142
5.4.2 配置的级别 143
5.4.3 Location标记 144
5.4.4 配置文件的结构 145
5.4.5 配置架构 146
5.4.6 对节进行锁定和解锁 148
5.5 通过使用命令行完成管理
工作 150
5.5.1 使用AppCmd.exe 151
5.5.2 获取帮助 151
5.5.3 使用list命令 155
5.5.4 AppCmd.exe操作属性和
属性值 158
5.5.5 使用add、delete和set管理
对象 158
5.5.6 判断哪个属性与对象进行了
关联 159
5.5.7 备份与恢复 162
5.5.8 对配置进行加锁和解锁 170
5.5.9 使用管道传送XML数据 170
5.6 Web管理服务和远程管理 171
5.7 本章小结 171
第6章 Web网站管理 173
6.1 Web网站、应用程序和虚拟
目录 173
6.1.1 Web网站 174
6.1.2 应用程序 174
6.1.3 虚拟目录 175
6.2 新建Web网站 175
6.2.1 使用IIS Manager新建
Web网站 175
6.2.2 为网站新建应用程序池 177
6.2.3 使用AppCmd创建Web
网站 179
6.2.4 使用Microsoft.Web.
Administration创建Web
网站 181
6.2.5 修改applicationHost.config
文件 183
6.3 配置日志 184
6.4 配置主机头 191
6.4.1 使用IIS Manager添加/删除
主机头 193
6.4.2 使用AppCmd设置主机头 193
6.4.3 使用Microsoft.Web
.Administration设置
主机头 194
6.4.4 SSL和主机头 196
6.5 管理应用程序 196
6.5.1 使用IIS Manager添加
应用程序 196
6.5.2 使用AppCmd添加应
用程序 197
6.5.3 使用Microsoft.Web
.Administration添加应用
程序 198
6.5.4 使用IIS Manager删除
应用程序 198
6.5.5 使用AppCmd删除
应用程序 198
6.5.6 使用Microsoft.Web
.Administration删除应用
程序 199
6.6 管理虚拟目录 199
6.6.1 使用IIS Manager创建
虚拟目录 199
6.6.2 使用AppCmd创建虚拟
目录 201
6.6.3 使用Microsoft.Web.
Administration创建虚拟
目录 201
6.6.4 删除虚拟目录 202
6.7 身份验证 203
6.8 配置压缩 203
6.8.1 使用IIS Manager
配置压缩 204
6.8.2 使用AppCmd.exe
配置压缩 204
6.9 配置默认文档 205
6.10 配置MIME设置 206
6.10.1 添加MIME类型 207
6.10.2 编辑MIME类型 208
6.10.3 删除MIME类型 208
6.11 基本管理任务 209
6.11.1 为IIS配置默认选项 209
6.11.2 启动和停止服务,以及
启动和停止Web网站 210
6.11.3 启用动态内容——ASP.NET和Classic ASP 211
6.11.4 隔离应用程序 211
6.12 本章小结 211
第7章 Web应用程序管理 213
7.1 应用程序管理 213
7.2 ASP 213
7.3 ASP.NET 214
7.3.1 IIS 6.0及先前版本的IIS
的架构 214
7.3.2 IIS 7.0的架构 215
7.3.3 IIS 7.0和ASP.NET模块 216
7.4 ISAPI 228
7.5 CGI 229
7.6 FastCGI 229
7.6.1 安装PHP 230
7.6.2 安装QDig 230
7.6.3 安装FastCGI模块 230
7.6.4 为使用PHP而启用
FastCGI 231
7.7 Windows进程激活服务 231
7.8 本章小结 232
第8章 Web应用程序池管理 233
8.1 隔离网站的背景知识 233
8.2 定义应用程序 234
8.3 比较虚拟目录和应用程序 236
8.4 深入理解w3wp.exe进程 238
8.4.1 回收应用程序池 239
8.4.2 Web Garden 241
8.5 使用应用程序池 242
8.5.1 创建应用程序池 243
8.5.2 管理设置 244
8.5.3 为应用程序池指派应用程序
及网站 248
8.5.4 确定.NET Framework
的版本 253
8.5.5 确定托管的管道模式 254
8.5.6 管理活动应用程序池 258
8.6 应用程序池的安全性 264
8.6.1 应用程序池配置隔离 264
8.6.2 应用程序池SID注入 265
8.6.3 网站匿名用户 265
8.7 值得一提的高级设置 266
8.7.1 位数 267
8.7.2 CPU限制 267
8.7.3 处理器关联 268
8.8 应用程序池用户 268
8.8.1 Network Service账号 269
8.8.2 Local Service账号 269
8.8.3 Local System账号 270
8.8.4 自定义的用户账号 270
8.9 本章小结 271
第9章 委托远程管理 273
9.1 主要特点 273
9.1.1 服务器管理员 274
9.1.2 网站管理员 274
9.1.3 服务器管理员与网站管理员
应该合二为一 275
9.2 远程访问IIS Manager 275
9.2.1 安装IIS 7.0 Management
Service 275
9.2.2 开启远程连接 276
9.2.3 身份验证类型 280
9.2.4 在3个级别上进行授权 284
9.2.5 远程安装及使用 285
9.2.6 扩展IIS Manager 287
9.3 委托设置 288
9.3.1 委托节 288
9.3.2 委托细节 307
9.4 本章小结 312
第10章 配置其他服务 313
10.1 FTP发行版 314
10.1.1 FTP基础知识 314
10.1.2 自动创建FTP站点和
FTP站点管理自动化 325
10.1.3 FTP命令行客户端 327
10.2 FTP 7 328
10.2.1 安装FTP 7 329
10.2.2 新建FTP 7站点 329
10.2.3 在现有的Web网站中
添加FTP 7站点 331
10.2.4 配置FTP 7安全性 332
10.2.5 使用SSL配置FTP 7 335
10.2.6 配置FTP 7的用户隔离 338
10.2.7 配置FTP 7主机名支持 339
10.2.8 使用配置文件管理
FTP 7 340
10.3 FrontPage服务器扩展 345
10.3.1 安装FPSE 346
10.3.2 为Web 网站添加FPSE 347
10.3.3 配置FPSE 350
10.3.4 确保进行了FPSE扩展
的Web网站的安全 352
10.3.5 使用客户端连接 354
10.3.6 卸载FPSE 355
10.4 SMTP 355
10.4.1 SMTP的内部工作机制 355
10.4.2 安装SMTP 356
10.4.3 配置默认的SMTP
服务器 357
10.4.4 SMTP的安全性和身份
验证 362
10.4.5 配置附加域 365
10.4.6 SMTP文件夹 366
10.4.7 对SMTP进行测试和错误
定位 367
10.5 LogParser 370
10.6 本章小结 374
第Ⅲ部分 高 级 管 理
第11章 Core Server 379
11.1 背景 379
11.2 Core Server和模块 380
11.3 定制服务器负载 388
11.3.1 清除负载 388
11.3.2 一个简单的实例 389
11.3.3 一个稍复杂的实例 390
11.3.4 针对单个Web网站
进行定制 392
11.3.5 使用IIS Manager完成
定制工作 395
11.4 ASP.NET和IIS管道 397
11.4.1 配置ASP.NET
执行模式 399
11.4.2 将遗留的ASP.NET应用
程序迁移到IIS 7.0中 400
11.4.3 选择ASP.NET的版本 401
11.5 对遗留的ISAPI的支持 401
11.6 本章小结 402
第12章 Core Server的可扩展性 403
12.1 可扩展性概览 403
12.2 IIS的模块概念 404
12.2.1 事件 404
12.2.2 通知 406
12.2.3 返回的编码 407
12.2.4 通知的优先级 408
12.3 一个本机模块示例 409
12.3.1 本机模块设计 410
12.3.2 创建本机模块 410
12.3.3 完成本机模块开发 420
12.4 托管代码模块 421
12.4.1 托管事件通知 422
12.4.2 补充阅读材料 423
12.5 一个托管模块的示例 423
12.5.1 托管模块设计 423
12.5.2 创建托管模块 423
12.5.3 完成托管模块开发 428
12.6 模块事件跟踪 429
12.7 扩展IIS的配置 435
12.8 扩展IIS管理工具 439
12.9 本章小结 449
第13章 确保服务器的安全 451
13.1 安全的定义 451
13.1.1 管理风险 452
13.1.2 安全组件 453
13.2 攻击类型 453
13.2.1 拒绝服务攻击 454
13.2.2 权限升级攻击 454
13.2.3 被动攻击 455
13.3 确保服务器的安全 455
13.3.1 确保环境的安全 456
13.3.2 IPsec 456
13.3.3 NAP 457
13.3.4 ADFS 458
13.4 确保IIS 7.0的安全 460
13.4.1 IP和域名限制 460
13.4.2 配置MIME类型扩展 465
13.4.3 配置ISAPI扩展和CGI
限制 466
13.4.4 配置请求过滤 471
13.4.5 应用程序层的安全 476
13.4.6 配置日志 477
13.5 本章小结 478
第14章 身份验证与授权 479
14.1 IIS 7.0中的身份验证机制 480
14.2 配置Anonymous身份
验证机制 483
14.3 配置Basic身份验证机制 485
14.4 配置Digest身份验证机制 488
14.5 配置NTLM身份验证机制 492
14.6 配置UNC身份验证机制 506
14.7 配置客户端证书身份
验证机制 507
14.8 配置基于Forms的身份
验证 510
14.9 配置委托 513
14.10 配置协议转换 517
14.11 配置授权 519
14.11.1 URL授权 520
14.11.2 配置应用程序池沙箱 523
14.12 IIS 7.0用户账号 524
14.13 本章小结 526
第15章 SSL和TLS 527
15.1 使用TLS确保Web网站的
安全 528
15.1.1 SSL/TLS握手 528
15.1.2 生成证书请求 531
15.1.3 提交证书请求 536
15.1.4 将证书导入IIS 7.0 538
15.1.5 配置Web网站绑定 538
15.1.6 使用域证书请求生成
证书 539
15.1.7 生成自签名证书 540
15.1.8 管理使用SSL/TLS安全
保护的Web网站 541
15.1.9 管理PKI 544
15.2 使用TLS确保SMTP虚拟
服务器的安全 547
15.3 使用TLS确保FTP站点
的安全 549
15.4 本章小结 552
第16章 配置Web Farms及 Web
Farms的负载平衡 553
16.1 IIS 7.0和Web Farm 553
16.2 内容配置 570
16.2.1 本地内容 570
16.2.2 共享网络内容 572
16.2.3 共享SAN内容 574
16.3 内容复制 575
16.3.1 分布式文件系统 576
16.3.2 Robocopy工具 579
16.3.3 脱机文件夹 580
16.3.4 附加的工具 582
16.3.5 Microsoft Web部署工具 582
16.4 完全冗余 583
16.5 负载平衡 584
16.5.1 网络负载平衡器 584
16.5.2 轮转DNS负载平衡 590
16.5.3 第三方负载平衡工具 591
16.6 其他考虑事项 592
16.6.1 复制 592
16.6.2 .NET配置文件和
machineKey 598
16.6.3 会话状态 599
16.6.4 安全性 605
16.7 本章小结 606
第17章 可编程配置及管理 609
17.1 直接配置 609
17.1.1 配置文件层次结构 610
17.1.2 操作顺序 611
17.1.3 集合项 613
17.1.4 配置节的结构 615
17.1.5 location标记 617
17.1.6 继承 620
17.1.7 锁定机制 621
17.1.8 childConfig属性和
sourceConfig属性 622
17.1.9 配置路径 623
17.1.10 信息架构的可扩展性 624
17.2 可编程配置 628
17.2.1 第一个IIS 7.0编程
示例 628
17.2.2 Microsoft.Web.
Administration(MWA) 635
17.2.3 Microsoft.Web.Management
(MWM) 642
17.2.4 ABO、ADSI以及对遗留
API的支持 643
17.2.5 IIS 7.0 WMI提供程序 644
17.2.6 AHAdmin 650
17.3 本章小结 652
第Ⅳ部分 管理和操作
IIS 7.0
第18章 IIS及操作管理 655
18.1 管理方法及原则 655
18.1.1 ITIL标准 656
18.1.2 MOF:微软公司提出的
ITIL超集 657
18.1.3 在IIS操作管理中
应用MOF 661
18.2 操作任务 673
18.3 本章小结 680
第19章 监视及性能调优 681
19.1 监视Web网站 681
19.1.1 监视IIS 7.0的方式 682
19.1.2 监视内容 696
19.2 性能调优 703
19.2.1 操作系统优化 704
19.2.2 IIS服务优化 708
19.2.3 Web网站优化 714
19.3 本章小结 721
第20章 诊断与错误定位 723
20.1 问题类型 723
20.1.1 特定的错误 723
20.1.2 挂起/超时问题 724
20.1.3 资源紧张问题和运行
缓慢问题 724
20.2 运行时状态和控制
API(RSCA) 725
20.2.1 观察工作进程 726
20.2.2 观察页面请求 729
20.2.3 观察应用程序域 730
20.3 IIS 7.0错误页面 731
20.3.1 定制Custom Error页面 733
20.3.2 多语言支持 735
20.3.3 HTTP状态编码 735
20.3.4 FTP状态编码 736
20.4 失败请求跟踪 736
20.4.1 设置失败请求跟踪规则 737
20.4.2 选择跟踪提供程序 739
20.4.3 读取XML跟踪日志 740
20.5 日志 741
20.6 ASP.NET跟踪 742
20.6.1 启用ASP.NET跟踪 744
20.6.2 ASP.NET跟踪查看器 745
20.7 错误定位技巧 748
20.7.1 再现 748
20.7.2 隔离 749
20.7.3 改正错误 752
20.7.4 测试 752
20.8 附加的内置工具 752
20.8.1 任务管理器 752
20.8.2 事件查看器 753
20.8.3 可靠性和性能监控器 756
20.8.4 将NTFS错误记录到
磁盘中 763
20.8.5 Ping/Tracert/Pingpath 765
20.8.6 Telnet 766
20.9 可安装工具 767
20.9.1 IIS 6.0资源工具包 767
20.9.2 DelegConfig 773
20.9.3 进程浏览器 773
20.9.4 IIS诊断工具包 775
20.9.5 ELMAH 776
20.9.6 下一步工作 777
20.10 本章小结 777
附录A 模块参考 779
附录B IIS状态编码 791
附录C 资源 797