第1章 初识Apache 1
1.1 Apache的简史 1
1.2 Apache的特点 2
1.2.1 信息状态码 4
1.2.2 用户请求成功代码 4
1.2.3 请求重定向代码 4
1.2.4 用户请求未完成代码 5
1.2.5 服务器错误 5
1.3 Apache的体系结构 7
1.4 Apache的发展前景 8
1.5 Apache的许可证 8
第2章 安装Apache 11
2.1 下载Apache 11
2.2 Apache对系统配置的需求 12
2.3 配置源代码 13
2.3.1 配置选项 13
2.3.2 编译Apache 17
2.4 随时更新Apache 21
2.5 小结 21
第3章 设置Apache 22
3.1 Apache服务器设置基础 22
3.1.1 httpd.conf 22
3.1.2 srm.conf 38
3.1.3 access.conf 38
3.2 控制服务器 39
3.2.1 启动服务器 39
3.2.2 停止服务器 39
3.2.3 重启服务器 39
3.3 测试服务器 39
3.4 小结 40
第4章 内核命令 41
4.1 Apache指令的使用环境 41
4.1.1 Server Config环境 41
4.1.2 Container环境 41
4.1.3 Pre-Directory环境 42
4.2 常规配置命令 43
4.2.1 名词说明 43
4.2.2 AccessConfig 44
4.2.3 AccessFileName 44
4.2.4 BindAddress 44
4.2.5 CoreDumpDirectory 45
4.2.6 DefaultType 45
4.2.7 DocumentRoot 45
4.2.8 ErrorDocument 46
4.2.9 Group 47
4.2.10 Include 47
4.2.11 Listen 47
4.2.12 Options 48
4.2.13 Port 49
4.2.14 ResourseConfig 49
4.2.15 ServerAdmin 49
4.2.16 ServerSignature directive 50
4.2.17 ServerTokens directive 50
4.2.18 ServerName 50
4.2.19 ServerRoot 51
4.2.20 User 51
4.2.21 <IfModule> 51
4.3 性能和资源配置指令 52
4.3.1 控制Apache进程 52
4.3.2 进行持续连接 54
4.3.3 控制系统资源 55
4.3.4 使用动态装卸模块的命令 56
4.4 标准的容器命令 57
4.4.1 <Directory> 57
4.4.2 <DirectoryMatch> 58
4.4.3 <Files> 58
4.4.4 <FilesMatch> 59
4.4.5 <Location> 59
4.4.6 <LocationMatch> 60
4.4.7 <VirtualHost> 60
4.5 记录日志命令 61
4.5.1 ErrorLog 61
4.5.2 ScoreBoardFile 62
4.5.3 PidFile 62
4.5.4 LockFile 62
4.6 认证和安全命令 63
4.6.1 AllowOverride 63
4.6.2 AuthName 63
4.6.3 AuthType 64
4.6.4 require 64
4.6.5 Satisfy 64
4.6.6 IdentityCheck 65
4.6.7 HostNameLookups 65
4.6.8 <Limit> 65
4.7 小结 66
第5章 Apache的模块 67
5.1 mod_access 67
5.1.1 Allow 67
5.1.2 deny 68
5.1.3 order 68
5.1.4 allow from env=variable 69
5.1.5 deny from env=variable 69
5.2 mod_actions 70
5.2.1 Action 70
5.2.2 Script 73
5.3 mod_alias 74
5.3.1 Alias 74
5.3.2 AliasMatch 74
5.3.3 Redirect 74
5.3.4 RedirectMatch 75
5.3.5 RedirectTemp 75
5.3.6 RedirectPermanent 76
5.3.7 ScriptAlias 76
5.3.8 ScriptAliasMatch 76
5.4 mod_asis 77
5.5 mod_auth 77
5.5.1 AuthUserFile 77
5.5.2 AuthGroupFile 78
5.5.3 AuthAuthoritative 78
5.6 mod_auth_anon 79
5.6.1 Anonymous 79
5.6.2 Anonymous_LogEmail 79
5.6.3 Anonymous_MustGiveEmail 80
5.6.4 Anonymous_NoUserID 80
5.6.5 Anonymous_VerifyEmail 80
5.7 mod_auth_db 80
5.7.1 AuthDBUserFile 80
5.7.2 AuthDBGroupFile 81
5.7.3 AuthDBAuthoritative 81
5.8 mod_auth_dbm 81
5.8.1 AuthDBMUserFile 82
5.8.2 AuthDBMGroupFile 82
5.8.3 AuthDBMAuthoritative 82
5.9 mod_auth_external 83
5.9.1 AddExternalAuth 83
5.9.2 AddExternalGroupAuth 83
5.9.3 SetExternalAuthMethod 84
5.9.4 SetExternalGroupMethod 84
5.9.5 AuthExrenal 85
5.9.6 GroupExrenal 85
5.10 mod_autoindex 88
5.10.1 AddAlt 89
5.10.2 AddAltByEncoding 89
5.10.3 AddAltByType 89
5.10.4 AddDescription 90
5.10.5 AddIcon 90
5.10.6 AddIconByEncoding 90
5.10.7 AddIconByType 91
5.10.8 DefaultIcon 91
5.10.9 FancyIndexing 91
5.10.10 HeaderName 91
5.10.11 IndexIgnore 92
5.10.12 IndexOptions 92
5.10.13 IndexOrderDefault 93
5.10.14 ReadmeName 94
5.11 mod_browser 94
5.12 mod_cern_meta 94
5.12.1 MetaFiles 94
5.12.2 MetaDir 95
5.12.3 MetaSuffix 95
5.13 mod_cgi 95
5.13.1 SriptLog 95
5.13.2 ScriptLogLength 96
5.13.3 ScriptBuffer 96
5.14 modcookies 96
5.15 mod_digest 97
5.16 mod_dir 97
5.17 mod_dld 99
5.17.1 LoadFile 99
5.17.2 LoadModule 99
5.18 mod_env 100
5.18.1 PassEnv 100
5.18.2 SetEnv 100
5.18.3 UnsetEnv 100
5.19 mod_expires 100
5.19.1 ExpiresActive 101
5.19.2 ExpiresByType 101
5.19.3 ExpiresDefault 101
5.20 mod_headers 102
5.21 mod_imap 103
5.21.1 ImapMenu 104
5.21.2 ImapDefault 104
5.21.3 ImapBase 104
5.22 mod_include 106
5.23 mod_info 106
5.24 mod_log_agent 107
5.25 mod_log_config 107
5.26 mod_log_referer 107
5.27 mod_mime 107
5.27.1 AddEncoding 107
5.27.2 AddHandler 108
5.27.3 AddLanguage 108
5.27.4 AddType 108
5.27.5 DefaultLanguage 108
5.27.6 ForceType 109
5.27.7 RemoveHandler 109
5.27.8 SetHandler 110
5.27.9 TypesConfig 110
5.28 mod_mime_magic 110
5.29 mod_mmap_static 111
5.30 mod_negotiation 111
5.30.1 CacheNegotiatedDocs 112
5.30.2 LanguagePriority 112
5.31 mod_proxy 113
5.32 mod_rewrite 113
5.33 mod_setenvif 113
5.33.1 BrowserMatch 113
5.33.2 BrowserMatchNoCase 114
5.33.3 SetEnvlf 114
5.33.4 SetEnvlfNoCase 114
5.34 mod_speling 115
5.35 mod_status 115
5.36 mod_userdir 116
5.37 mod_unique_id 117
5.38 mod_usertrack 117
5.38.1 CookieExpires 117
5.38.2 CookieTracking 117
5.39 小结 118
第6章 虚拟站点 119
6.1 什么是虚拟站点 119
6.2 基于IP的虚拟主机 119
6.3 基于名称的虚拟主机的DNS配置 120
6.4 虚拟主机的Apache配置 121
6.5 配置多个Apache守护进程 121
6.6 设置单个Apache守护进程 122
6.7 不同类型的虚拟主机的例子 123
6.8 基于名称的虚拟主机到基于IP的虚拟主机的转换 127
6.9 虚拟主机建立的限制因数 128
6.10 小结 128
第7章 Apache服务器端包含的指令 129
7.1 什么是SSI 129
7.2 为SSI配置Apache 129
7.3 为SSI页面添加新的文件扩展名 131
7.4 SSI指令的使用 131
7.5 小结 140
第8章 CGI配置 141
8.1 CGI简介 141
8.2 配置CGI 142
8.2.1 创建CGI程序目录 142
8.2.2 选择特定的CGI文件的扩展名 143
8.3 CGI程序的运行 145
8.4 调试CGI程序 162
8.5 小结 163
第9章 FastCGI 164
9.1 初识FastCGI 164
9.2 Apache中FastCGI的配置 165
9.2.1 FastCGI指令的使用 165
9.2.2 在httpd.conf文件中使用<Location>容器进行配置 166
9.2.3 在httpd.conf中使用AddType和AddHandler指令配置 166
9.3 编写FastCGI脚本 166
9.4 小结 167
第10章 Apache中的Perl 168
10.1 Perl模块的安装 168
10.2 使用mod_perl运行基于Perl的CGI脚本 168
10.3 移植Perl CGI脚本应注意的问题 170
10.4 编写基于mod_perl的Perl模块 171
10.5 SSI和mod_perl的集成 173
10.6 利用Perl配置Apache 174
10.7 小结 175
第11章 设置Apache代理服务器 176
11.1 什么是代理服务器 176
11.2 设置Apache的代理服务器 177
11.2.1 ProxyRequests 178
11.2.2 ProxyRemote 178
11.2.3 ProxyPass 178
11.2.4 ProxyPassReverse 179
11.2.5 AllowCONNECT 179
11.2.6 ProxyBlock 179
11.2.7 ProxyReceiveBufferSize 180
11.2.8 NoProxy 180
11.2.9 ProxyDomain 181
11.2.10 ProxyVia 181
11.2.11 CacheForceCompletion 181
11.2.12 CacheRoot 182
11.2.13 CacheSize 182
11.2.14 CacheGcInterval 182
11.2.15 CacheMaxExpire 183
11.2.16 CacheLastModifiedFactor 183
11.2.17 CacheDirLengeth 183
11.2.18 CacheDirLevels 183
11.2.19 CacheDefaultExpire 184
11.2.20 NoCache 184
11.3 配置代理服务器 184
11.3.1 将私有IP网连到互联网 185
11.3.2 远程Web站点的缓存 185
11.3.3 建立Web站点的镜象 185
11.3.4 建立逆向代理服务器 185
11.3.5 控制对代理服务器的访问 186
11.3.6 启用SOCKS代理 186
11.4 手工设置浏览器 186
11.4.1 Internet Explorer 4.01 186
11.4.2 Internet Explorer 5.0版本以上 187
11.4.3 Opera 3.x 188
11.4.4 NETSCAPE 188
11.5 Web浏览器的自动代理配置 189
11.5.1 只用于远程URL请求的代理服务器 191
11.5.2 使用多个代理服务器 191
11.6 小结 193
第12章 重写URL 195
12.1 mod_rewrite模块——URL重写引擎 195
12.1.1 RewriteEngine 195
12.1.2 RewriteOpition 196
12.1.3 RewriteLog 196
12.1.4 RewriteLevel 197
12.1.5 RewriteLock 197
12.1.6 RewriteMap 197
12.1.7 RewriteBase 200
12.1.8 RewriteCond 200
12.1.9 RewriteRule 202
12.2 URL格式 205
12.2.1 把被请求的URL扩展为标准的URL 205
12.2.2 把用户主目录重新定向给新Web的服务器 205
12.2.3 在多个目录中查找一页 205
12.2.4 设置基于URL的环境变量 206
12.2.5 创建www.username.host.com站点 206
12.2.6 把访问失败的URL重新定向给新Web的服务器 206
12.2.7 创建基于时间的URL 206
12.3 内容处理 207
12.3.1 使URL向后兼容 207
12.3.2 创建传送的内容与浏览器类型有关的URL 207
12.3.3 为CGI网关创建HTML 207
12.4 访问限制 207
12.4.1 阻塞机器人 207
12.4.2 创建基于HTTP应用的URL转向功能 208
12.5 小结 208
第13章 服务器状态和日志 209
13.1 监视Apache 209
13.1.1 访问配置信息 209
13.1.2 允许使用状态页 210
13.2 建立日志文件 213
13.2.1 TransferLog命令 214
13.2.2 LogFormat命令 214
13.2.3 CustomLog命令 214
13.2.4 CookieLog命令 215
13.3 定制日志文件 215
13.4 建立多个日志文件 216
13.5 存储特殊信息 217
13.5.1 存储用户代理信息 217
13.5.2 存储引用者信息 217
13.5.3 存储cookie 218
13.6 使用错误日志 219
13.7 分析日志文件 221
13.8 日志的维护 222
13.8.1 使用rotatelog 222
13.8.2 使用logrotate 222
13.9 小结 223
第14章 Apache的安全套接字层 224
14.1 使用Apache-SSL修补Apache 224
14.2 建立SSLeay 224
14.3 建立Apache-SSL 225
14.4 生成一个临时证书 225
14.5 配置Apache-SSL所用的命令 226
14.5.1 SSLBanCipher 226
14.5.2 SSLCACertificatePath 226
14.5.3 SSLCacheServerPort 226
14.5.4 SSLCertificateFile 226
14.5.5 SSLCertificateKeyFile 226
14.5.6 SSLDisable 227
14.5.7 SSLEnable 227
14.5.8 SSLFakeBasicAuth 227
14.5.9 SSLLogFile 227
14.5.10 SSLRequireCipher 227
14.5.11 SSLRequireSSL 227
14.5.12 SSLRequiredCiphers 227
14.5.13 SSLSessionCacheTimeout 228
14.5.14 SSLVerifyClient 228
14.5.15 SSLVerifyDepth 228
14.6 为Apache-SSL配置Apache 228
14.7 检测安全的服务器 234
14.8 使用mod_ssl 237
14.8.1 得到mod_ssl 237
14.8.2 编译和安装mod_ssl 237
14.8.3 建立RSAref库 237
14.8.4 建立SSLeay 238
14.8.5 建立mod_ssl模块和Apache服务器 238
14.9 为mod_ssl软件包配置Apache 238
14.10 检测以mod_ssl模块建立的Apache 250
14.11 得到一个CA签字的证书 250
14.12 小结 251
第15章 Apache中的API 252
15.1 基础内容 252
15.1.1 操作和请求 252
15.1.2 模块一览 252
15.2 操作的执行过程 253
15.2.1 request_rec一览 254
15.2.2 request_rec结构的来源 255
15.2.3 执行请求、拒绝和返回错误代码 255
15.2.4 响应操作的特殊事项 256
15.2.5 验证操作的特殊事项 256
15.2.6 记录操作的特殊事项 257
15.3 小结 257
附录A 常规表达式使用规则 258
附录B 免费域名申请 260