第1章 安装Nginx及第三方模块 1
1.1 使用包管理器安装Nginx 2
1.1.1 CentOS 2
1.1.2 Debian 3
1.2 从源代码安装Nginx 3
1.2.1 准备编译环境 4
1.2.2 从源代码编译 4
1.3 配置web或者mail服务器 6
1.3.1 邮件代理的配置选项 6
1.3.2 指定路径的配置选项 7
1.4 使用各种模块 8
1.5 查找并安装第三方模块 11
1.6 组合在一起 12
1.7 总结 14
第2章 配置指南 15
2.1 基本配置格式 15
2.2 Nginx的全局配置参数 16
2.3 使用include文件 17
2.4 Http的server部分 18
2.4.1 客户端指令 18
2.4.2 文件I/O指令 19
2.4.3 Hash指令 20
2.4.4 Socket指令 21
2.4.5 示例配置文件 22
2.5 虚拟server部分 22
2.6 Locations——wheve,when,how 26
2.7 mail的server部分 28
2.8 完整的样本配置文件 30
2.9 总结 31
第3章 使用mail模块 33
3.1 基本代理服务 33
3.1.1 POP3服务 35
3.1.2 IMAP服务 36
3.1.3 SMTP服务 36
3.1.4 使用SSL/TLS 37
3.1.5 完整的mail示例 40
3.2 认证服务 42
3.3 与Memcached结合 49
3.4 解释日志文件 52
3.5 操作系统的限制 54
3.6 总结 55
第4章 Nginx作为反向代理 57
4.1 反向代理简介 58
4.1.1 代理模块 59
4.1.2 upstream模块 64
4.2 upstream服务器的类型 67
4.2.1 单个upstream服务器 67
4.2.2 多个upstream服务器 69
4.2.3 非Http型upstream服务器 70
4.3 将if配置转换为一个更现代的解释 72
4.4 使用错误文件来处理upstream的问题 76
4.5 确定客户端的真实IP地址 78
4.6 总结 78
第5章 反向代理高级话题 81
5.1 实现安全隔离 82
5.1.1 使用SSL对流量进行加密 82
5.1.2 使用SSL进行客户端身份验证 84
5.1.3 基于原始IP地址阻止流量 86
5.2 孤立应用程序的扩展 89
5.3 反向代理服务器的性能调优 92
5.3.1 缓冲 92
5.3.2 缓存 94
5.3.3 压缩 100
5.4 总结 103
第6章 Nginx Http服务器 105
6.1 Nginx的系统结构 106
6.2 Http的核心模块 106
6.2.1 server 107
6.2.2 日志 108
6.2.3 文件查找 111
6.2.4 名字解析 113
6.2.5 客户端交互 115
6.3 使用limit指令防止滥用 117
6.4 约束访问 121
6.5 流媒体文件 126
6.6 预定义变量 127
6.7 使用Nginx和PHP-FPM 129
6.8 将Nginx和uWSGI连接在一起工作 141
6.9 总结 143
第7章 Nginx的开发 145
7.1 缓存集成 145
7.1.1 应用程序没有缓存 146
7.1.2 使用数据库缓存 148
7.1.3 使用文件做缓存 150
7.2 动态修改内容 154
7.2.1 addition模块 154
7.2.2 sub模块 155
7.2.3 xslt模块 156
7.3 使用服务器端包含SSI 157
7.4 在Nginx中的决策 159
7.5 创建安全链接 163
7.6 生成图像 165
7.7 跟踪网站的访问者 169
7.8 防止意外的代码执行 170
7.9 总结 171
第8章 故障排除技巧 173
8.1 分析日志文件 173
8.1.1 错误日志文件格式 174
8.1.2 错误日志文件条目实例 175
8.2 配置高级日志记录 178
8.2.1 调试日志记录 178
8.2.2 使用访问日志文件进行调试 185
8.3 常见的配置错误 188
8.3.1使用if取代try_files 188
8.3.2 使用if作为主机名切换 189
8.3.3 不使用server部分的配置追求更好的效果 190
8.4 操作系统限制 192
8.4.1 文件描述符限制 192
8.4.2 网络限制 194
8.5 性能问题 195
8.6 使用Stub Status模块 197
8.7 总结 198
附录A 指令参考 199
附录B Rewrite规则指南 241
B.1 介绍rewrite模块 241
创建新的rewrite规则 245
B.2 转换Apache的重写规则 247
B.2.1 规则 #1:使用try_files替代目录和文件存在性检测 247
B.2.2 规则 #2:使用location替代匹配REQUEST_URI 247
B.2.3 规则 #3:使用server替代匹配R Http_HOST 248
B.2.4 规则 #4:变量检查使用if替代RewriteCond 250
B.3 总结 251
附录C Nginx的社区 253
C.1 邮件列表 253
C.2 IRC频道 254
C.3 Web资源 254
C.4 撰写好的bug报告 254
C.5 总结 255
附录D Solaris系统下的网络调优 257
^ 收 起