《Apache Server 2.0技术参考大全》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:Ryan B.Bloom著;袁勤勇,何欣等译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2003
  • ISBN:730206167X
  • 页数:564 页
图书介绍:本书分为9个部分,主要介绍了配置、编译以及安装等知识;Apache模块的类型以及Apache设置的调试;Apache的管理和安全等内容。

1.1 Apache概述 1

1.1.1 Web服务器的工作原理 1

第Ⅰ部分 Apache概述 1

第1章 Apache简介 1

1.1.2 Apache软件基金 4

1.1.3 如何开发Apache 5

1.1.4 使用Apache的用户 6

1.2.2 从CVS下载源代码 9

1.2.1 Apache 2.0发布模型 9

1.2 下载Apache 9

1.2.3 下载作为存档版本的源代码 11

1.2.4 商业选择 14

2.1.1 平台支持 16

2.1 Apache 2.0 16

第2章 Apache 2.0和Apache 1.3、IIS以及Sun ONE 16

2.1.2 性能 17

2.1.4 模块化 18

2.1.3 可靠性 18

2.1.6 配置 19

2.1.5 安全性 19

2.2.1 平台支持 20

2.2 Apache服务器1.3 20

2.2.4 模块化 21

2.2.3 可靠性 21

2.2.2 性能 21

2.3.1 平台支持 22

2.3 MicrosoftInternet信息服务器 22

2.2.5 安全性 22

2.2.6 配置 22

2.3.3 可靠性 23

2.3.2 性能 23

2.3.5 安全 24

2.3.4 模块化 24

2.4.2 性能 25

2.4.1 平台支持 25

2.3.6 配置 25

2.4 Sun ONE 25

2.4.6 配置 26

2.4.5 安全性 26

2.4.3 可靠性 26

2.4.4 模块化 26

3.1 获取源码 27

第3章 配置Apache 27

第Ⅱ部分 配置、编译以及安装Apache 27

3.2 准备配置 28

3.1.2 Windows 28

3.1.1 Unix和Mac 0S X 28

3.3.1 为站点选择最好的 MPM 30

3.3 在Unix和Mac OS X上运行./configure 30

3.3.2 标准配置选项 35

3.3.3 模块配置选项 37

4.1 Unix 44

第4章 编译Apache 44

4.2.1 在IDE中使用MSVC++(6.0和7.0) 46

4.2 Windows 46

4.2.2 从命令行构建Windows上的Apache 50

4.3 构建Apache源代码以外的模块 52

5.1 Apache安装目录 57

第5章 安装Apache 57

5.2.1 Unix和Mac OS x 59

5.2 在构建之后进行安装 59

5.2.2 Windows 60

5.3 安装二进制发行版本 64

5.3.1 Unix和Mac OS X 65

5.3.2 Windows 68

5.4 第一次启动Apache 73

6.1 模块的作用 78

第6章 模块概述 78

6.1.1 Mod_backhand模块 79

6.2 标准Apache模块的类别 80

6.1.4 SSL模块 80

6.1.2 Mod_DAV模块 80

6.1.3 PHP模块 80

6.2.1 认证、授权和账户确认(AAA) 81

6.2.7 过滤器模块 82

6.2.6 试验模块 82

6.2.2 针对体系结构的模块 82

6.2.3 缓存模块 82

6.2.4 DAV模块 82

6.2.5 回应模块 82

6.2.11 映射器模块 83

6.2.10 日志记录器模块 83

6.2.8 生成器模块 83

6.2.9 HTTP模块 83

6.2.14 SSL模块 84

6.2.13 代理模块 84

6.2.12 元数据模块 84

6.3.1 静态函数 85

6.3 请求处理阶段 85

6.3.2 挂钩 87

7.1 MPM概述 93

第7章 多处理模块 93

7.2.1 用户编写MPM的原因 94

7.2 编写MPM 94

7.2.2 MPM在服务器中的作用 95

7.2.3 示例MPM 98

8.1 模块结构 119

第8章 标准模块 119

8.2.1 宏指令 121

8.2 命令表 121

8.2.2 指令类型 122

8.2.3 指令位置 123

8.3 编写简单模块 125

9.1 配置文件 135

第9章 设置基本的HTTP服务器 135

第Ⅳ部分 Apache模块 135

9.2 指令的实质 138

9.2.1 文件的位置 139

9.2.2 本的Apache配置 141

9.2.3 设置MIME类型 143

9.3 HTTP请求/响应 144

9.4 错误发生时 147

9.4.1 定制错误页面 150

9.4.2 使用.var特性 151

10.1 标准Apache AAA模块 153

第10章 认证、授权和账户确认 153

10.1.1 认证 154

1 0.1.2 授权 162

10.1.3 访问控制 163

10.1.4 认证、授权及访问控制的综合运用 167

10.2 存储口令信息的位置 169

10.3 更多的认证模块 170

11.1.1 文件传输协议(FTP) 171

11.1 过去如何构建Web站点 171

第11章 构建Web站点 171

11.1.4 FrontPage服务器扩展 172

11.1.3 网络文件系统(NFS) 172

11.1.2 安全Shell(SSH) 172

11.2 基于Web的分布式授权和版本控制 173

11.3 在Web站点上设置DAV 175

11.3.1 已知的DAV安全考虑 178

11.3.2 示例配置 179

11.4.1 Unix 180

11.4 DAV客户程序 180

11.4.2 Windows 182

11.4.3 与平台无关的DAV客户程序 183

12.1.1 Apache核心 185

12.1 随Apache提供的内容生成器 185

第12章 生成内容 185

12.1.2 mod_autoindex内容生成模块 186

12.1.3 mod_asis内容生成模块 193

12.1.4 mod_info内容生成模块 194

12.1.5 mod_status内容生成模块 195

12.1.6 moa_cgi和mod_cgid内容生成模块 196

12.1.7 外部内容生成器 202

12.2 编写内容生成器 203

第13章 过滤器 216

13.1 设置过滤器 217

13.2 随Apache提供的过滤器 218

13.2.1 Mod_ext_filter过滤器 219

13.2.2 Mod_deflate 过滤器 220

13.2.3 Mod_include过滤器 222

13.2.4 timefmt选项 225

13.3.1 存储段和存储段组 230

13.3 过滤器的工作方式 230

13.3.2 输出过滤器 240

13.3.3 输入过滤器 243

13.3.4 使用Apache API添加过滤器 244

13.4.1 输出过滤器示例 246

13.4 编写输出过滤器 246

13.4.2 输入过滤器示例 249

14.1 符号链接 253

第14章 站点内容增加后所做的工作 253

14.2 从URI空间映射到文件 256

14.2.1 允许文件存在于DocumentRoot以外 256

14.2.2 将文件移到新位置 257

14.2.3 允许用户拥有自己的 Web站点 258

14.2.4 使用 mod_rewrite 进行重写 260

14.3.1 将主目录移到不同的计算机 269

14.3 mod_rewrite 示例 269

14.3.3 针对用户的虚拟主机 270

14.3.2 基于时间重定向请求 270

14.3.4 安全地转变URL 271

15.1.2 基于名称的虚拟主机 273

15.1.1 基于IP的虚拟主机 273

第15章 虚拟主机 273

15.1 如何在HTTP中使用虚拟主机 273

15.2 配置虚拟主机 274

15.2.1 普通的虚拟主机指令 275

15.2.2 基于IP的虚拟主机 277

15.2.3 基于名称的虚拟主机 278

15.2.4 配置同时基于IP和基于名称的主机 280

15.3 保持站点分离 282

15.2.5 检查用户的虚拟主机配置 282

15.3.1 日志和虚拟主机 283

15.3.2 针对各个主机的不同用户和组 285

15.4 处理大量虚拟主机 288

16.1 使用协议模块的原因 291

第16章 使用Apache服务于不同协议 291

16.2 如何将协议与请求进行映射 293

16.3 POP3 294

16.4 编写协议模块 295

16.4.2 协议模块示例 296

16.4.1 协议和请求阶段 296

17.1 用户如何知道存在问题 307

第17章 错误日志 307

第Ⅴ部分 调试用户的Apache设置 307

17.2.1 日志文件的位置 308

17.2 首先要查看错误日志 308

17.2.2 日志内容 309

17.3.1 运行服务器进行调试 312

17.3 当错误日志不能解决问题时所采取的措施 312

17.3.2 调试用户服务器(Unix/Mac OS X) 314

17.3.3 Windows服务 315

17.3.4 问题数据库 318

18.1.2 ServerName指令和端口 323

18.1.1 在FreeBSD上使用线程化MPM 323

第18章 常见的问题和错误 323

18.1 配置Apache 323

18.1.4 Alias阻碍处理 324

18.1.3 被忽略的.htaccess文件 324

18.2 启动和终止Apache 325

18.1.5 存储口令的位置 325

18.2.3 不能够将组ID设置为组4294967295 326

18.2.2 即使正在使用线程化MPM,Apache也会启动50个进程 326

18.2.1 即使配置了三个子进程,Apache也只启动一个子进程 326

18.2.6 服务器不能启动 327

18.2.5 服务器已经启动,但Apachectl没有启动 327

18.2.4 当启动服务器时,可以连接HTTP端口,但不能连接HTTPS端口 327

18.2.10 找不到核心文件 328

18.2.9 apachectl不能够终止服务器 328

18.2.7 在Windows上,Apache不能够与终端分离 328

18.2.8 如果错误日志超过2GB,Apache就不能够启动 328

18.2.11 不能够绑定端口 329

18.3.1 文件可以使用IE,但不能使用Netscape Navigator 330

18.3 客户问题 330

18.2.12 服务器拒绝响应请求 330

18.4.1 CGI脚本的运行速度很慢 331

18.4 生成和过滤内容 331

18.3.2 在错误日志中得到“ConnectionReset by Peer(对等端重置连接)”消息 331

18.4.5 不断地从目录得到一个已禁止的消息 333

18.4.4 Apache的文件处理缓慢 333

18.4.2 CGI脚本不能运行 333

18.4.3 即使已经进行了配置,也不能够处理SSI文件 333

18.5.1 在Unix上运行Apache的安全考虑 334

18.5 安全考虑 334

18.4.6 配置了认证,但是没有提示输入口令 334

18.5.3 针对default.ida或者cmd.exe的多个错误日志表项 335

18.5.2 在Windows 上运行Apache的安全考虑 335

18.5.4 如何作为特定的用户运行CGI 336

19.1 获得httpd-test程序包 341

第19章 使用httpd-test 341

19.2.1 使用Flood的原因 342

19.2 Flood 342

19.2.2 设置Flood 343

19.2.3 运行Flood 344

19.2.4 分析结果 348

19.3.1 设置框架 350

19.3 Perl框架 350

19.3.3 运行整个套件 351

19.3.2 运行测试 351

19.3.5 编写自己的测试 353

19.3.4 使测试输出有意义 353

20.1.1 访问日志 354

20.1 标准Apache 日志文件 354

第Ⅵ部分 Apache管理 354

第20章 日志 354

20.1.2 传输日志 359

20.2 管道化日志 360

20.1.3 Cookie日志 360

20.2.1 主机名称解析 362

20.2.2 日志滚动 363

20.2.3 编写自己的日志处理器 364

20.3.1 在自己的文件中进行日志记录 365

20.3 在模块中进行日志记录 365

20.3.2 扩展mod_log_config 367

21.1.1 写入日志文件的位置 370

21.1 日志文件 370

第21章 磁盘管理 370

21.1.2 将日志置于哪个驱动器 371

21.2 Web页面的文件许可权 372

21.3 工进制程序的文件权限 373

21.4 Windows权限 374

22.1.1 Web服务器的性能很重要 377

22.1 Web站点的性能 377

第22章 性能调试 377

22.1.2 性能与可伸缩性 378

22.1.3 度量性能的方法 379

22.2 所要使用的MPM 380

22.3 删除.htaccess文件 381

22.4 所要使用的Mutex 383

22.5.1 DNS的危险 384

22.5 是否要在请求期间进行DNS请求 384

22.5.3 CGI和SSI脚本 385

22.5.2 日志文件 385

22.6 符号链接和Apache 386

22.5.4 控制访问 386

22.7 对提供服务的文件进行协商 387

22.9 管道化连接 388

22.8 动态模块 388

22.10.1 静态页面与动态页面 389

22.10 正在为请求提供服务的内容 389

22.10.2 缓存页面 390

23.1.1 访问日志 394

23.1 观察日志 394

第23章 维护 394

23.1.2 错误日志 398

23.1.3 日志滚动 400

23.2 保持Apache的时效性 401

23.2.2 运行并行服务器 402

23.2.1 有组织的更新 402

23.3.1 移植配置文件 404

23.3 从1.3升级到2.0 404

23.3.2 利用新特性 406

24.1 分割配置文件 409

第24章 分割配置任务 409

第Ⅶ部分 高级Apache管理 409

24.1.1 使用include指令 410

24.2 通过htaccess改变配置 411

24.1.2 在用户间进行分割 411

24.2.1 启用和控制.htaccess文件 412

24.2.2 .htaccess中的指令 414

24.2.3 合并.htaccess选项 415

24.2.5 比较Directory指令和htaccess文件 416

24.2.4 安全限制 416

24.2.6 使用.htaccess文件的时机 417

25.1 mod_perl扩展组件 418

第25章 在用户服务器中添加第三方模块 418

25.1.1 安装 419

25.1.3 mod_perl编程 420

25.1.2 配置Apache 420

25.1.4 从CGI移植到mod_perl 422

25.2.2 配置Apache 423

25.2.1 安装 423

25.2 mod_php扩展组件 423

25.2.3 mod_php编程 424

25.3 mod_snake扩展组件 425

25.3.2 配置Apache 426

25.3.1 安装 426

25.3.3 mod_snake编程 427

25.4 其他模块 428

第26章 安全套接字层 440

第Ⅷ部分 Apache安全 440

26.1 SSL概述 441

26.1.1 SSL的作用 442

26.1.2 SSL握手 443

26.1.3 客户和服务器认证 446

26.2 设置SSL 447

26.2.1 生成凭证和密钥 448

26.2.2 设置虚拟主机 449

26.3 SSL会话缓存 457

27.1 防火墙概述 459

第27章 防火墙和代理服务器 459

27.2 使用代理服务器通过防火墙 460

27.3 为代理服务器设置浏览器 467

27.4.1 通用的缓存指令 468

27.4 设置代理服务器缓存页面 468

27.4.2 基于磁盘的缓存指令 469

27.4.3 基于内存的缓存 470

27.5 SSL和代理服务器 471

27.5.2 使用SSL访问原始服务器 472

27.5.1 使用代理服务器作为通道 472

A.1.3 mpm_netware.c 475

A.1.2 leader.c 475

第Ⅸ部分 附 录 475

附录A 可能的Apache日志消息 475

A.1 EMERG 475

A.1.1 bs2login.c 475

A.2 ALERT 476

A.1.8 worker.c 476

A.1.4 mpm_winnt.c 476

A.1.5 prefork.c 476

A.1.6 threadpool.c 476

A.1.7 unixd.c 476

A.2.8 unixd.c 477

A.2.7 threadpool.c 477

A.2.1 bs2login.c 477

A.2.2 config.c 477

A.2.3 mod_isapi.c 477

A.2.4 mod_unique_id.c 477

A.2.5 mpm_common.c 477

A.2.6 mpmt_os2.c 477

A.3.4 mod_auth_digest.c 478

A.3.3 log.c 478

A.2.9 worker.c 478

A.3 CRIT 478

A.3.1 config.c 478

A.3.2 listen.c 478

A.3.8 mpm_winnt.c 479

A.3.7 mod_unique_id.c 479

A.3.5 mod_nw_ssl.c 479

A.3.6 mod_rewrite.c 479

A.3.15 worker.c 480

A.3.14 threadpool.c 480

A.3.9 os.c 480

A.3.10 request.c 480

A.3.11 rfc1413.c 480

A.3.12 scoreboard.c 480

A.3.13 service.c 480

A.4.7 log.c 481

A.4.6 listen.c 481

A.4 ERR 481

A.4.1 bs2login.c 481

A.4.2 config.c 481

A.4.3 core.c 481

A.4.4 http_protocol.c 481

A.4.5 http_request.c 481

A.4.15 mod_auth_digest.c 482

A.4.14 mod_auth_dbm.c 482

A.4.8 main.c 482

A.4.9 mod_access.c 482

A.4.10 mod_alias.c 482

A.4.11 mod_asis.c 482

A.4.12 mod_auth.c 482

A.4.13 mod_auth_anon.c 482

A.4.19 mod_cgi.c 483

A.4.18 mod_cern_meta.c 483

A.4.16 mod_autoindex.c 483

A.4.17 mod_cache.c 483

A.4.22 mod_dav.c 484

A.4.21 mod_charset_lite.c 484

A.4.20 mod_cgid.c 484

A.4.27 mod_include.c 485

A.4.26 mod_imap.c 485

A.4.23 mod_deflate.c 485

A.4.24 mod_expires.c 485

A.4.25 mod_ext_filter.c 485

A.4.30 mod_mime_magic.c 486

A.4.29 mod_mime.c 486

A.4.28 mod_log_config.c 486

A.4.35 mpm_common.c 487

A.4.34 mod_win32.c 487

A.4.31 mod_negotiation.c 487

A.4.32 mod_rewrite.c 487

A.4.33 mod_status.c 487

A.4.41 protocol.c 488

A.4.40 prefork.c 488

A.4.36 mpm_netware.c 488

A.4.37 mpm_winnt.c 488

A.4.38 mpmt_os2.c 488

A.4.39 mpmt_os2_child.c 488

A.4.46 request.c 489

A.4.45 proxy_util.c 489

A.4.42 proxy_connect.c 489

A.4.43 proxy_ftp.c 489

A.4.44 proxy_http.c 489

A.4.50 ssl_engine_log.c 490

A.4.49 ssl_engine_kernel.c 490

A.4.47 service.c 490

A.4.48 ssl_engine_io.c 490

A.4.58 vhost.c 491

A.4.57 util_xml.c 491

A.4.51 unixd.c 491

A.4.52 util.c 491

A.4.53 util_ebcdic.c 491

A.4.54 util_filter.c 491

A.4.55 util_lock.c 491

A.4.56 util_script.c 491

A.5.4 mod_auth_digest.c 492

A.5.3 log.c 492

A.4.59 worker.c 492

A.5 WARNING 492

A.5.1 config.c 492

A.5.2 listen.c 492

A.5.6 mod_file_cache.c 494

A.5.5 mod_env.c 494

A.5.10 mod_so.c 495

A.5.9 mod_proxy.c 495

A.5.7 mod_isapi.c 495

A.5.8 mod_mime.c 495

A.6.1 config.c 496

A.6 NOTICE 496

A.5.11 mpm_common.c 496

A.5.12 mpm_winnt.c 496

A.5.13 proxy_http.c 496

A.5.14 proxy_util.c 496

A.5.15 worker.c 496

A.6.4 main.c 497

A.6.3 log.c 497

A.6.2 core.c 497

A.6.13 mod_suexec.c 498

A.6.12 mod_so.c 498

A.6.5 mod_auth_digest.c 498

A.6.6 mod_cgi.c 498

A.6.7 mod_dav.c 498

A.6.8 mod_negotiation.c 498

A.6.9 mod_nw_ssl.c 498

A.6.10 mod_optional_fn_export.c 498

A.6.11 mod_proxy.c 498

A.6.16 mpm_winnt.c 499

A.6.15 mpm_netware.c 499

A.6.14 mpm_common.c 499

A.6.19 worker.c 500

A.6.18 registry.c 500

A.6.17 proxy util.c 500

A.7.2 mod_auth_anon.c 501

A.7.1 core.c 501

A.7 INFO 501

A.7.1 2 mpm_winnt.c 502

A.7.11 mpm_netware.c 502

A.7.3 mod_auth_digest.c 502

A.7.4 mod_cache.c 502

A.7.5 mod_disk_cache.c 502

A.7.6 mod_isapi.c 502

A.7.7 mod_proxy.c 502

A.7.8 mod_speling.c 502

A.7.9 mod_unique_id.c 502

A.7.10 mod_win32.c 502

A.8.1 mod_alias.c 503

A.8 DEBUG 503

A.7.13 mpmt_os2.c 503

A.7.14 protocol.c 503

A.7.15 proxy_ftp.c 503

A.7.16 request.c 503

A.7.17 service.c 503

A.7.18 worker.c 503

A.8.5 mod_charset_lite.c 504

A.8.4 mod_cgid.c 504

A.8.2 mod_auth_digest.c 504

A.8.3 mod_cache.c 504

A.8.9 mod_mime_magic.c 505

A.8.8 mod_headers.c 505

A.8.6 mod_deflate.c 505

A.8.7 mod_ext_filter.c 505

A.8.14 proxy_ftp.c 506

A.8.13 proxy_connect.c 506

A.8.10 mod_proxy.c 506

A.8.11 mod_so.c 506

A.8.12 mpm_winnt.c 506

A.8.16 proxy_util.c 507

A.8.15 proxy_http.c 507

A.8.18 worker.c 508

A.8.17 util.c 508

B.1.1 分支多处理模块 509

B.1 源代码 509

附录B 源代码以及示例配置 509

B.1.2 Hello World模块 529

B.1.3 输出过滤器 530

B.1.4 输入过滤器 533

B.1.5 示例协议模块 536

B.2 例配置文件 556

附录C 其他Apache资源 562

C.1 书籍 562

C.1.1 管理Apache 562

C.2 Web站点 563

C.2.1 普通Apache 563

C.1.2 编写Apache模块 563

C.2.2 Apache的商业资源 564