精通Nginx
出版信息
[瑞士]艾维利 / 陶利军 / 人民邮电出版社 / 2015-2 / 49.00元
内容简介
Nginx是一个高性能的轻量级Web服务器,本书从配置文件的角度出发,介绍了多种关于 Nginx配置文件的技巧。
本书以模块化风格写成,几乎每一章都是一个独立的模块,读者将能够自由地在各个模块间切换阅读。全书分两部分,第一部分用8章内容介绍了安装Nginx及第三方模块、配置指南、使用mail模块、Nginx作为反向代理、反向代理高级话题、Nginx Http服务器、Nginx的开发以及故障排除技巧;第二部分用4个附录的形式介绍了指令参考、Rewrite规则指南、Nginx社区以及Solaries系统下的网络调优。
本书适合在安装和配置服务器方面有经验的系统管理员或系统工程师,阅读本书不需要任何Nginx使用经验,想信这本书会帮助你更好地完成任务。
作者简介
Dimitri Aivaliotis 在瑞士苏黎世的一个主机托管商就职于系统架构师。他的职业生涯,从为学校构建基于Linux的计算机网络到为银行构建双数据中心的高可用性基础设施和在线门户网站。他在解决客户问题上已经花费了10年的时间,并且在这条路上发现了Nginx。他使用Nginx每天为他的客户提供Web访问,代理和流媒体服务。
目录
第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