第1章 关于Apache 1
1.1 Apache 1.3.x介绍 1
1.2 Apache 2.0/2.2介绍 2
1.3 Apache 2.3/2.4介绍 3
第2章 Apache的安装 6
2.1 使用二进制程序安装 6
2.1.1 使用rpm或deb格式安装 6
2.1.2 使用已经编译好的包安装 8
2.2 使用源代码安装Apache 11
2.2.1 编译安装Apache 12
2.2.2 使用Apache Toolbox编译 21
2.3 常见问题解答(FAQ) 23
2.3.1 常用的优化参数 23
2.3.2 关于-O参数的设置 24
2.3.3 不知道该使用哪种参数进行优化 25
2.3.4 make install出错 25
2.3.5 安装mod_deflate模块出错 25
2.3.6 suEXEC模块的安装 26
2.3.7 无法安装mod_authnz_ldap模块 27
第3章 运行、监控Apache 29
3.1 运行Apache 29
3.1.1 手动启动Apache服务器 29
3.1.2 自动启动Apache服务器 30
3.1.3 停止Apache服务器 35
3.1.4 使用apachectl程序控制Apache 36
3.1.5 运行多个Apache服务器 37
3.1.6 使用<IfDefine>容器实现不同的配置 37
3.1.7 httpd命令行参数 38
3.2 监控Apache 40
3.2.1 Apache自带的Web监视器 41
3.2.2 使用第三方的工具来监控Apache 46
3.3 常见问题解答(FAQ) 49
3.3.1 Apache启动后通过浏览器访问提示:"您没有权限访问此服务器上的/" 49
3.3.2 启动Apache时提示的常见错误 50
第4章 Apache模块 51
4.1 模块的类型 52
4.2 使用apxs编译安装模块 52
4.3 使用静态链接模块 56
4.4 使用动态链接模块 56
4.4.1 Apache 2.x动态链接模块使用方法 57
4.4.2 Apache 1.3.x动态链接模块使用方法 58
4.5 为Apache增加新模块 59
4.5.1 Perl 59
4.5.2 PHP 62
4.6 常见问题解答(FAQ) 64
4.6.1 以静态的方式编译PHP到Apache 1.3.x中 64
4.6.2 能否将PHP静态编译到Apache 2.x中 64
4.6.3 如何测试已经安装的PHP 64
4.6.4 编译了mod_perl模块,但是Apache无法加载它 65
4.6.5 编译mod_perl模块出错 66
4.6.6 如何测试Apache的CGI是否支持Perl 66
4.6.7 如何测试mod_perl已经启动 67
4.6.8 测试mod_perl是否工作 68
4.6.9 使用mod_perl来加速Perl脚本 69
第5章 配置Apache 71
5.1 http.conf文件 72
5.1.1 主服务器部分 74
5.1.2 容器部分 78
5.1.3 服务器扩展部分 81
5.2 .htaccess文件 82
5.2.1 映射用户到目录 83
5.2.2 目录的索引 85
5.2.3 GUI配置工具 90
5.3 常见问题解答(FAQ) 95
5.3.1 使用httpd -D来指定ServerRoot目录 95
5.3.2 Port 和Bindaddress指令 96
5.3.3 容器的处理顺序 96
5.3.4 目录、文件、网络容器的安全问题 97
5.3.5 关于Perl和PHP指令 98
5.3.6 .htaccess文件中写入了配置指令没有生效 98
5.3.7 使用suEXEC 98
5.3.8 将目录放入高速缓存中 99
第6章 虚拟主机配置 100
6.1 基于名字的虚拟主机 101
6.2 基于IP的虚拟主机 102
6.3 动态虚拟主机 104
6.3.1 使用vhost_alias_module模块建立动态虚拟主机 104
6.3.2 使用rewrite_module模块建立大量的虚拟主机 106
6.4 常见问题解答(FAQ) 107
6.4.1 使用IPv6的地址配置虚拟主机 107
6.4.2 取消默认主机 107
6.4.3 使用ServerAlias指令定义的网站别名无法访问 107
6.4.4 如何支持古老的浏览器 107
6.4.5 为虚拟主机使用日志 108
6.4.6 合并虚拟主机日志 108
6.4.7 在多个地址上显示同样的内容 109
6.4.8 让虚拟主机支持SSL 109
6.4.9 使用虚拟主机的建议 110
第7章 CGI、FastCGI、SSI 111
7.1 CGI 111
7.1.1 mod_cgi模块 111
7.1.2 mod_actions模块 113
7.1.3 CGI环境变量 114
7.1.4 修改CGI、SSI环境变量 115
7.1.5 mod_cgid模块 116
7.2 FastCGI 117
7.2.1 安装mod_fcgid 118
7.2.2 配置mod_fcgid 119
7.2.3 mod_fcgid模块指令 122
7.3 SSI 123
7.3.1 启用SSI支持 123
7.3.2 SSI标记符 124
7.3.3 流控制 128
7.3.4 其他SSI指令 129
7.4 常见问题解答(FAQ) 129
7.4.1 很多人使用Perl来编写CGI脚本,我是否也需要使用Perl 129
7.4.2 使用fixconf.sed替换指令时遇到错误 129
7.4.3 为什么Perl脚本无法执行 130
7.4.4 安装了Perl的FCGI模块,但脚本还是无法运行 130
7.4.5 为什么Apache服务器没有为SSI页面发送最后的修改日期 131
7.4.6 让Apache对特定的HTML类型文件进行SSI解析 131
7.4.7 Apache所带的SSI功能太少了,如何得到更多功能的SSI 131
7.4.8 不在由ScriptAlias所定义的目录下使用CGI脚本 131
7.4.9 如何在Windows系统中使用CGI 132
7.4.10 为特定的文件调用CGI处理器 132
第8章 别名和重定向 133
8.1 mod_alias模块 133
8.1.1 别名的定义 133
8.1.2 重定向的定义 135
8.2 mod_rewrite模块 137
8.2.1 工作流程 137
8.2.2 规则集 138
8.2.3 重写指令 139
8.3 常见问题解答(FAQ) 148
8.3.1 如何提高mod_rewrite模块的工作效率 148
8.3.2 如何完全禁止重写日志 148
8.3.3 目录级改写中的查询字符串 148
8.3.4 让用户首先访问某一目录 148
8.3.5 规范化URL 148
8.3.6 将多个URL重定向到一个位置 149
8.3.7 将多个CGI目录重定向到一个CGI目录中 149
8.3.8 无视URL中所有的大小写区分 149
8.3.9 将部分地址的URL重定向到SSL服务器上 149
第9章 代理服务器与缓存 150
9.1 代理服务器 150
9.1.1 正向代理 151
9.1.2 逆向代理 151
9.1.3 Apache的代理模块 152
9.1.4 Apache的其他代理模块 157
9.2 缓存模块 157
9.2.1 mod_cache模块 157
9.2.2 mod_mem_cache模块 159
9.2.3 mod_disk_cache模块 160
9.2.4 维护磁盘缓存区 162
9.2.5 mod_file_cache的文件缓存支持 163
9.3 常见问题解答(FAQ) 164
9.3.1 为什么需要使用缓存模块 164
9.3.2 缓存多个文件 164
9.3.3 缓存调用了CGI程序的页面,但还是很慢 165
9.3.4 使用其他服务器作为图片服务器 165
9.3.5 禁止代理服务器转发电子邮件 165
9.3.6 在代理服务器中禁止所指定的网站 166
9.3.7 htcacheclean的使用 166
第10章 数据库连接管理 167
10.1 mod_dbd模块 167
10.2 mod_ldap模块 171
10.3 常见问题解答(FAQ) 174
10.3.1 在启动Apache时遇到DBD:Can't load driver file apr_dbd_ pgsql.so错误 174
10.3.2 出现DBD: Can't connect to pgsql,FATAL:sorry,too many clients already/n错误 174
10.3.3 对LDAP缓冲区的监控 174
第11章 Apache日志控制 175
11.1 错误日志 175
11.1.1 LogLevel指令:指定记录错误级别 175
11.1.2 ErrorLog指令:定义错误文件的位置 177
11.2 访问日志 178
11.2.1 普通日志 (公共日志 Common Log Format、CLF) 178
11.2.2 扩充普通日志(复合日志 Extended Log File Format、ECLF) 179
11.2.3 LogFormat指令 179
11.2.4 CustomLog 指令 181
11.2.5 TransferLog指令 182
11.2.6 BufferedLogs指令 183
11.3 日志的循环 183
11.3.1 手动循环 183
11.3.2 自动循环 184
11.4 使用syslog来控制、存储日志 184
11.5 跟踪用户会话 185
11.6 日志分析软件 188
11.6.1 Webalizer 188
11.6.2 Awstats 190
11.6.3 Windows服务器安全分析系统 192
11.7 常见问题解答(FAQ) 194
11.7.1 一些常见的格式串 194
11.7.2 条件记录日志 194
11.7.3 多个日志文件 195
11.7.4 在虚拟主机中进行日志记录 195
11.7.5 不记录本地主机上的图片请求 195
11.7.6 按时间记录日志 196
11.7.7 在日志中记录Cookie 196
11.7.8 在日志中记录引用页面 196
11.7.9 在日志中记录客户浏览器类型 196
11.7.10 在负载均衡时Apache无法保持会话 197
第12章 性能调整及服务器安全 198
12.1 性能调整 198
12.1.1 多路处理模块(MPM) 198
12.1.2 Apache所提供的性能调整指令 202
12.1.3 使用XCache加速PHP 203
12.1.4 AB测试服务器性能 205
12.1.5 网站架构演变 208
12.2 服务器安全 208
12.2.1 Apache所提供的安全控制 210
12.2.2 常用的检测工具 211
12.3 常见问题解答(FAQ) 217
12.3.1 Apache加速器(khttpd) 217
12.3.2 Apache服务器安全检查 217
12.3.3 其他的PHP加速程序 218
12.3.4 禁用DNS查询 218
12.3.5 只在指定的目录中使用.htaccess文件 218
12.3.6 停用网页内容协商 218
12.3.7 将目录列表存入缓存区中 219
12.3.8 使用DNS进行负载均衡 219
12.3.9 计算单个线程内存消耗量来设置线程数量 219
第13章 身份认证 220
13.1 mod_authz_host模块 221
13.2 认证类型模块 223
13.2.1 mod_auth_basic模块 223
13.2.2 mod_auth_digest模块 224
13.3 认证支持模块 225
13.3.1 mod_authn_alias模块 225
13.3.2 mod_authn_anon模块 226
13.3.3 mod_authn_dbd模块 228
13.3.4 mod_authn_dbm模块 229
13.3.5 mod_authn_default模块 229
13.3.6 mod_authn_file模块 229
13.4 授权支持模块 230
13.4.1 mod_authz_dbm模块 230
13.4.2 mod_authz_groupfile模块 231
13.4.3 mod_authz_owner模块 232
13.4.4 mod_authz_user模块 233
13.4.5 mod_authz_default模块 233
13.5 mod_authnz_ldap模块 233
13.5.1 使用mod_authnz_ldap模块来进行认证 234
13.5.2 使用mod_authnz_ldap模块来进行授权 236
13.6 常见问题解答(FAQ) 238
13.6.1 使用mod_authn_file模块禁止用户控制时服务器反应速度很慢 238
13.6.2 使用系统账号进行验证 238
13.6.3 Microsoft Internet Explorer 6无法使用摘要认证 239
13.6.4 获得通过验证的用户名 239
13.6.5 针对特定用户源的用户进行身份认证 239
13.6.6 建立基本认证使用的密码文件 240
13.6.7 建立摘要认证的密码文件 240
13.6.8 建立数据库格式的密码文件 241
13.6.9 允许或禁止某一目录的访问 242
13.6.10 根据用户身份限制访问的方法 242
第14章 SSL(安全套接层协议) 243
14.1 SSL的实现方式 243
14.1.1 安装mod_ssl 244
14.1.2 签发证书 244
14.1.3 配置Apache启用SSL功能 255
14.1.4 配置Apache使用客户证书进行认证 259
14.1.5 mos_ssl指令说明 259
14.2 常见问题解答(FAQ) 263
14.2.1 mod_ssl支持哪些SSL加密算法 263
14.2.2 OpenSSL支持哪些加密算法 263
14.2.3 使用OpenSSL源代码安装OpenSSL 264
14.2.4 使用二进制方式安装OpenSSL 265
14.2.5 OpenSSL命令的常见用法 265
14.2.6 如何查看更多的关于服务器上的SSL信息 266
第15章 元信息与内容协商 267
15.1 元信息 267
15.1.1 MIME类型(内容类型) 268
15.1.2 MIME编码方式 271
15.1.3 MIME语言 271
15.1.4 MIME字符集 272
15.2 内容协商 273
15.2.1 使用类型映射(type-map)进行内容协商 275
15.2.2 使用MultiViews查询进行内容协商 277
15.2.3 浏览器协商缓存 277
15.3 常见问题解答(FAQ) 278
15.3.1 如何向客户端浏览传输默认的语言文件 278
15.3.2 如何指定一个新的mime.types文件位置 278
15.3.3 在使用语言协商时总是无法获得正确的文件 278
15.3.4 类型映射文件说明 279
附录A Apache编译参数翻译 281
附录B Apache模块及模块配置指令列表 287
附录C HTTP响应代码 305
· · · · · · (
收起)