第1章 Apache概述 1
1.1 Apache的发展历程 1
1.2 Apache的主要特征 1
1.3 Apache的结构 3
1.4 Apache的前景 4
1.5 许可证问题 4
1.6 小结 5
第2章 Apache的安装 6
2.1 获取Apache源代码 6
2.2 配置源代码 7
2.2.1 配置选项 7
2.2.2 配置源代码 11
2.3 安装Apache 14
2.4 Apache对系统配置的需求 15
2.5 Apache的更新 16
2.6 小结 16
第3章 Apache的基本配置 17
3.1 Apache服务器的配置基础 17
3.1.1 srm.conf 18
3.1.2 access.conf 18
3.1.3 httpd.conf 18
3.2 Apache的主配置 25
3.3 主服务器的配置 32
3.4.1 什么是虚拟主机 36
3.4 配置虚拟主机 36
3.4.2 虚拟主机的Apache配置 38
3.4.3 配置不同类型的虚拟主机 42
3.4.4 不同类型虚拟主机之间的转换 47
3.4.5 虚拟主机的调试 47
3.5 控制服务器 48
3.6 测试Apache 48
3.7 小结 49
第4章 Apache模块 50
4.1 mod_access 50
4.1.1 Allow 50
4.1.2 Allow from env=variable 51
4.1.3 Deny 52
4.1.4 Deny from env=variable 52
4.1.5 Order 53
4.2 mod_actions 53
4.2.1 Action 54
4.2.2 Script 56
4.3 mod_alias 57
4.3.1 Alias 57
4.3.2 AliasMatch 58
4.3.3 Redirect 58
4.3.6 RedirectPermanent 59
4.3.5 RedirectTemp 59
4.3.4 RedirectMatch 59
4.3.7 ScriptAlias 60
4.3.8 ScriptAliasMatch 60
4.4 mod_asis 60
4.5 mod_auth 61
4.5.1 AuthAuthoritative 61
4.5.2 AuthUserFile 62
4.5.3 AuthGroupFile 62
4.6 mod_auth_anon 62
4.6.4 Anonymous_MustGiveEmail 63
4.6.3 Anonymous_LogEmail 63
4.6.2 Anonymous_Authoritative 63
4.6.1 Anonymous 63
4.6.5 Anonymous_NoUserID 64
4.6.6 Anonymous_VerifyEmail 64
4.7 mod_auth_db 64
4.7.1 AuthDBGroupFile 64
4.7.2 AuthDBUserFile 65
4.7.3 AuthDBAuthoritative 65
4.8 mod_auth_dbm 66
4.8.1 AuthDBMUserFile 66
4.8.2 AuthDBMGroupFile 66
4.9.1 AddExternalAuth 67
4.9 mod_auth_external 67
4.8.3 AuthDBMAuthoritative 67
4.9.2 AddExternalGroupAuth 68
4.9.3 SetExternalAuthMethod 68
4.9.4 SetExternalGroupMethod 69
4.9.5 AuthExternal 70
4.9.6 GroupExternal 70
4.10 mod_autoindex 73
4.10.1 AddAlt 73
4.10.2 AddAltByEncoding 74
4.10.3 AddAltByType 74
4.10.6 AddIconByEncoding 75
4.10.5 AddIcon 75
4.10.4 AddDescription 75
4.10.7 AddIconByType 76
4.10.8 DefaultIcon 76
4.10.9 FancyIndexing 76
4.10.10 HeaderName 76
4.10.11 IndexIgnore 77
4.10.12 IndexOptions 77
4.10.13 IndexOrderDefault 79
4.10.14 ReadmeName 80
4.11 mod_browser 80
4.12 mod_cern_meta 80
4.12.3 MetaSuffix 81
4.12.1 MetaFiles 81
4.12.2 MetaDir 81
4.13 mod_cgi 82
4.13.1 ScriptLog 82
4.13.2 ScriptLogLength 82
4.13.3 ScriptBuffer 83
4.14 mod_cookies 83
4.14.1 cookielog 83
4.15 mod_digest 83
4.15.1 AuthDigestFile 83
4.16 mod_dir 84
4.16.1 DirectoryIndex 84
4.17.2 LoadModule 85
4.18 mod_env 85
4.17 mod_dld 85
4.17.1 LoadFile 85
4.18.1 PassEnv 86
4.18.2 SetEnv 86
4.18.3 UnsetEnv 86
4.19 mod_expires 86
4.19.1 ExpiresActive 87
4.19.2 ExpiresByType 87
4.19.3 ExpiresDefault 88
4.21 mod_imap 89
4.20.1 Header 89
4.20 mod_headers 89
4.21.1 ImapMenu 90
4.21.2 ImapDefault 90
4.21.3 ImapBase 91
4.22 mod_include 92
4.22.1 XbitHack 93
4.23 mod_info 93
4.23.1 AddModuleInfo 93
4.25 mod_log_config 94
4.25.2 CustomLog 94
4.25.1 CookieLog 94
4.24.1 AgentLog 94
4.24 mod_log_agent 94
4.25.3 LogFormat 95
4.25.4 TransferLog 95
4.26 mod_log_referer 96
4.26.1 RefererLog 96
4.26.2 RefererIgnore 96
4.27 mod_mime 96
4.27.1 AddEncoding 97
4.27.2 AddHandler 97
4.27.3 AddLanguage 97
4.27.6 ForceType 98
4.27.4 AddType 98
4.27.5 DefaultLanguage 98
4.27.7 RemoveHandler 99
4.27.8 SetHandler 99
4.27.9 TypesConfig 100
4.28 mod_mime_magic 100
4.28.1 MimeMagicFile 100
4.29 mod_mmap_static 101
4.29.1 MmapFile 101
4.30 mod_negotiation 101
4.30.2 LanguagePriority 102
4.30.1 CacheNegotiatedDocs 102
4.31 mod_proxy 103
4.32 mod_rewrite 103
4.32.1 RewriteEngine 103
4.32.2 RewriteOpition 103
4.32.3 RewriteLog 104
4.32.4 RewriteLogLevel 104
4.32.5 RewriteMap 104
4.32.6 RewriteLock 104
4.33.1 BrowserMatch 105
4.32.9 RewriteCond 105
4.33 mod_setenvif 105
4.32.7 RewriteBase 105
4.32.8 RewriteRule 105
4.33.2 BrowserMatchNoCase 106
4.33.3 SetEnvlf 106
4.33.4 SetEnvlfNoCase 107
4.34 mod_speling 107
4.34.1 CheckSpelling 107
4.35 mod_status 108
4.35.1 ExtendStatus 108
4.36 mod_userdir 109
4.36.1 UseDir 109
4.38.1 CookieExpires 110
4.38.2 CookieTracking 110
4.37 mod_unique_id 110
4.38 mod_usertrack 110
4.39 小结 111
第5章 SSI 112
5.1 SSI的基本概念 112
5.2 配置SSI 112
5.3 SSI基本指令 114
5.4 SSI变量 121
5.5 SSI流控制指令 122
5.6 小结 124
6.2.1 使用ScriptAlias命令 125
6.2 为CGI配置Apache 125
第6章 CGI配置 125
6.1 CGI简介 125
6.2.2 选定CGI文件的扩展名 126
6.2.3 允许用户访问cgi-bin 127
6.3 技术内幕 129
6.3.1 环境变量 129
6.4 编写CGI程序 131
6.4.1 第一个简单的CGI程序 131
6.4.2 一个较复杂的CGI程序 133
6.5 调试CGI程序 152
6.6 小结 153
7.1.1 什么是FastCGI 154
7.1 FastCGI简介 154
第7章 FastCGI 154
7.1.2 FastCGI的工作原理 155
7.1.3 FastCGI的优势 155
7.2 为FastCGI配置Apache 156
7.2.1 Apache中的一些指令 157
7.2.2 配置mod_fastcgi 158
7.3 编写FastCGI脚本 160
7.3.1 使用FCGI.pm编写FastCGI脚本程序 160
7.3.2 使用CGI.pm编写FastCGI脚本程序 160
7.4 小结 161
8.1 什么是mod_perl 162
第8章 Apache中的mod_Perl 162
8.2 安装mod_perl 163
8.3 使用mod_perl加速CGI脚本的运行 164
8.4 开发基于mod_perl的Perl模块 166
8.5 为Perl配置Apache 168
8.6 mod_perl和SSI的集成 171
8.7 mod_perl的缺陷 172
8.7.1 系统资源问题 172
8.7.2 安全问题 172
8.8 小结 173
9.1 代理服务器的概念 174
第9章 Apache代理服务器 174
9.2 设置Apache代理服务器 175
9.2.1 编译mod_proxy 175
9.2.2 mod_proxy指令 176
9.2.3 ProxyPass 177
9.2.4 ProxyPassReverse 177
9.2.5 ProxyBlock 178
9.2.6 ProxyReceiveBufferSize 178
9.2.7 NoProxy 179
9.2.8 ProxyDomain 179
9.2.9 ProxyVia 179
9.2.12 CacheSize 180
9.2.11 CacheRoot 180
9.2.10 CacheForceCompletion 180
9.2.13 CacheGcInterval 181
9.2.14 CacheMaxExpire 181
9.2.15 CacheLastModifiedFactor 181
9.2.16 CacheDirLengeth 182
9.2.17 CacheDirLevels 182
9.2.18 CacheDefaultExpire 182
9.2.19 NoCache 183
9.3 配置代理服务器 183
9.3.1 将专用IP网络连接到因特网 184
9.3.2 缓存远程Web站点 184
9.3.4 建立逆向代理服务器 185
9.3.3 建立Web站点的镜像 185
9.4 设置Web浏览器 186
9.4.1 手工代理配置 186
9.4.2 手工配置NETSCAPE 186
9.4.3 自动代理配置 187
9.5 小结 194
第10章 重写URL 195
10.1 URL重写引擎——mod_rewrite模块 195
10.1.1 RewriteEngine 195
10.1.2 RewriteOpition 196
10.1.3 RewriteLog 196
10.1.5 RewriteMap 197
10.1.4 RewriteLogLevel 197
10.1.7 RewriteBase 199
10.1.6 RewriteLock 199
10.1.8 RewriteRule 200
10.1.9 RewriteCond 202
10.2 URL规则应用 205
10.2.1 把被请求的URL扩展为标准的URL 205
10.2.2 设置基于URL的环境变量 205
10.2.3 创建www.users.com站点 206
10.2.4 将访问失败的URL重新定向给新WEB服务器 206
10.2.5 创建基于时间的URL 206
10.2.8 为CGI网关创建HTML 207
10.2.6 使URL向后兼容 207
10.2.7 创建传送内容与浏览器类型有关的URL 207
10.2.9 创建基于HTTP引用的URL转向功能 208
10.2.10 其他使用情况 208
10.3 小结 209
第11章 基本认证 210
11.1 基本HTTP格式的认证 210
11.1.1 使用mod_auth模块 210
11.1.2 使用mod_auth_dbm模块 212
11.1.3 使用mod_auth_db模块 214
11.1.5 使用mod_auth_external模块 215
11.1.4 使用mod_auth_anon模块 215
11.2 digest认证 220
11.3 基于主机的认证 220
11.4 小结 221
第12章 服务器状态和日志 222
12.1 访问Apache配置状态 222
12.2 监视服务器状态信息 223
12.2.1 使用状态页 223
12.2.2 简化状态显示 224
12.2.3 存储服务器状态信息 224
12.3 生成服务器日志文件 225
12.3.1 日志指令 226
12.3.2 定制日志文件 227
12.3.3 生成多个日志文件 228
12.4 存储指定信息 229
12.4.1 存储引用者的信息 229
12.4.2 存储用户代理信息 230
12.4.3 存储cookie 230
12.5 使用错误日志 232
12.6 分析日志文件 233
12.7 日志的维护 234
12.7.1 使用logrotate 235
12.7.2 使用rotatelog 235
12.8 小结 235
13.1.2 非对称加密 236
13.1.1 对称加密 236
第13章 Apache的安全Socket层 236
13.1 什么是安全Socket层(SSL) 236
13.1.3 SSL的工作原理 237
13.2 使用mod_ssl 238
13.2.1 获取mod_ssl 238
13.2.2 编译和安装mod_ssl 238
13.2.3 为mod_ssl配置Apache 239
13.2.4 获取CA授权的证书 252
13.3 使用Apache-SSL 252
13.3.1 获取和创建SSLeay 252
13.3.2 获取和创建Apache-SSL 253
13.3.4 为Apache-SSL配置Apache 254
13.3.3 生成一个临时证书 254
13.3.5 检测服务器 261
13.4 使用Stronghold 263
13.4.1 安装Stronghold 263
13.4.2 配置Stronghold 264
13.4.3 获取CA授权的证书 265
13.4.4 创建专用的证书颁发机构 266
13.5 小结 269
14.1.2 模块概述 270
14.1.1 处理、模块和请求 270
14.1 基本概念 270
第14章 Apache中的API 270
14.2 处理程序的工作情况 272
14.2.1 request_rec概述 273
14.2.2 request_rec结构的起源 275
14.2.3 处理请求,拒绝和返回错误代码 275
14.2.4 响应处理的特殊事项 275
14.2.5 认证处理的特殊事项 277
14.2.6 记录处理的特殊事项 277
14.3 资源分配和资源池(resouce pools) 277
14.3.2 分配初始化内存 278
14.4 配置、命令等问题 278
14.3.1 池中的内存分配 278
14.4.1 针对目录的配置结构 279
14.4.2 命令处理 280
14.4.3 针对服务器的配置 283
14.5 小结 283
第15章 使用Apache组建Web网络 284
15.1 Web网络 284
15.1.1 Web网络的需求 284
15.1.2 理解需求 285
15.2 组建Web网络 286
15.2.1 设计方案 286
15.2.3 组建系统 287
15.2.2 选择硬件和软件 287
15.2.4 设置DNS服务器 288
15.2.5 配置Apache 301
15.2.6 使用FTP用户账号 302
15.3 测试Web网络系统 303
15.4 小结 304
附录A HTTP/1.1状态码 305
A.1 信息状态码(100-199) 305
A.2 用户请求成功代码(200-299) 305
A.3 请求重定向代码(300-399) 306
A.4 用户请求未完成代码(400-499) 306
A.5 服务器错误(500-599) 307
附录B 常用的内核命令 308
B.1 Server Config(服务器配置)环境 308
B.2 Container(容器)环境 308
B.3 Pre-Directory(针对目录)环境 309
B.4 常规配置命令 310
B.5 性能和资源配置指令 315
B.6 标准的容器命令 317
B.7 记录日志命令 319
B.8 认证和安全指令 320
附录C 规则表达式使用规则 324