精通 Nginx
精通 Nginx
编辑推荐
Nginx 是一个高性能的 HTTP 服务器和邮件代理,它只需要使用很少的系统资源就能工作。虽然 Web 上有很多关于如何使用 Nginx 的指南和配置示例,但是,要正确地配置 Nginx 以满足需要并不容易。 本书指导你掌握 Nginx 的配置,帮助你学会如何在各种使用场合正确地调校 Nginx,如何使用那些比较难的指令的配置,以及如何设计一个好的配置以满足你的需要。本书首先介绍了 Nginx 的安装以及与第三方模块的整合,然后介绍了 Nginx 的邮件代理模块及其认证,zui 后介绍了如何将 Nginx 和应用程序整合起来以加速开发并提高性能。 本书适合在安装和配置服务器方面有经验的系统管理员或系统工程师阅读。
你将从本书中学到
- ● 编译适当的第三方模块以满足你的需要;
- ● 编写认证服务器以便使用邮件代理模块;
- ● 创建你自己的 SSL 证书加密连接;
- ● 使用 try_files 解决文件存在性检测;
- ● 使用缓存和压缩提高用户交互;
- ● 使用 FastCGI 模块集成流行的 PHP 框架;
- ● 构建有用的日志配置;
- ● 排除配置问题。
内容简介
Nginx 是一个高性能的轻量级 Web 服务器,本书从配置文件的角度出发,介绍了多种关于 Nginx 配置的技巧。 本书以模块化风格写成,几乎每一章都是一个独立的模块,读者将能够自由地在各个模块间切换阅读。全书分两部分,第 1 部分用 9 章内容介绍了安装 Nginx 及第三方模块、配置向导、使用 mail 模块、Nginx 作为反向代理、Nginx Http 服务器、Nginx 的开发、在 Nginx 中集成 Lua 以及故障排除技巧;第二部分用 4 个附录的形式介绍了指令参考、Rewrite 规则指南、Nginx 社区以及 Solaris 系统下的网络调优。 本书适合在安装和配置服务器方面有经验的系统管理员或系统工程师,阅读本书不需要任何 Nginx 使用经验,相信这本书会帮助读者更好地完成任务。
作者简介
本书在国外众多的 Nginx 图书中,以其简洁实用得到了读者和专家的认可。国内有 Nginx 图书作者和专家专门向我们推荐本书,并自愿承担翻译工作。 本书第 1 版在我社出版后,较短时间内重印,总印数 4000 册
目录
第 1 章 安装 Nginx 及第三方模块 1
- 1.1 使用包管理器安装 Nginx 2
- 1.1.1 在 Centos 上安装 Nginx 2
- 1.1.2 在 Debian 上安装 Nginx 3
- 1.2 从源代码安装 Nginx 3
- 1.2.1 准备编译环境 3
- 1.2.2 从源代码编译 4
- 1.2.3 为 Web 或者 Mail 服务器
- 配置 Nginx 5
- 1.2.4 邮件代理的配置选项 6
- 1.2.5 指定路径的配置选项 6
- 1.3 配置 SSL 支持 7
- 1.4 使用各种模块 7
- 禁用不再使用的模块 9
- 1.5 查找并安装第三方模块 10
- 1.6 添加对 Lua 的支持 11
- 1.7 组合在一起 11
- 1.8 小结 13
第 2 章 配置指南 14
- 2.1 基本配置格式 14
- 2.2 Nginx 全局配置参数 15
- 2.3 使用 include 文件 16
- 2.4 HTTP 的 server 部分 17
- 2.4.1 客户端指令 17
- 2.4.2 文件 I/O 指令 18
- 2.4.3 Hash 指令 19
- 2.4.4 Socket 指令 19
- 2.4.5 示例配置文件 20
- 2.5 虚拟服务器部分 20
- 2.6 Locations—where,when,how 24
- 2.7 完整的示例配置文件 26
- 2.8 小结 27
第 3 章 使用 mail 模块 29
- 3.1 基本代理服务 29
- 3.1.1 mail 的 server 配置部分 30
- 3.1.2 POP3 服务 32
- 3.1.3 IMAP 服务 33
- 3.1.4 SMTP 服务 33
- 3.1.5 使用 SSL/TLS 34
- 3.1.6 完整的 mail 示例 37
- 3.2 认证服务 38
- 3.3 与 memcached 结合 46
- 3.4 解释日志文件 48
- 3.5 操作系统限制 50
- 3.6 小结 51
第 4 章 Nginx 作为反向代理 52
- 4.1 反向代理简介 53
- 4.2 代理模块 54
- 4.3 带有 cookie 的遗留应用程序 57
- 4.4 upstream 模块 58
- 4.5 保持活动连接 59
- 4.6 上游服务器的类型 61
- 4.7 单个上游服务器 61
- 4.8 多个上游服务器 62
- 4.9 非 HTTP 型上游服务器 63
- 4.9.1 Memcached 上游服务器 63
- 4.9.2 FastCGI 上游服务器 64
- 4.9.3 SCGI 上游服务器 65
- 4.9.4 uWSGI 上游服务器 65
- 4.10 负载均衡 65
- 负载均衡算法 65
- 4.11 将 if 配置转换为一个更现代的
- 解释 66
- 4.12 使用错误文件处理上游服务器
- 问题 70
- 4.13 确定客户端真实的 IP 地址 72
- 4.14 小结 72
第 5 章 反向代理高级话题 73
- 5.1 安全隔离 74
- 5.1.1 使用 SSL 对流量进行加密 74
- 5.1.2 使用 SSL 进行客户端身份
- 验证 76
- 5.1.3 基于原始 IP 地址阻止流量 78
- 5.2 孤立应用程序组件的扩展 80
- 5.3 反向代理服务器的性能调优 83
- 5.3.1 缓冲数据 84
- 5.3.2 缓存数据 86
- 5.3.3 存储数据 90
- 5.3.4 压缩数据 91
- 5.4 小结 94
第 6 章 Nginx HTTP 服务器 95
- 6.1 Nginx 的系统架构 95
- 6.2 HTTP 核心模块 96
- 6.2.1 server 指令 97
- 6.2.2 Nginx 中的日志 98
- 6.2.3 查找文件 101
- 6.2.4 域名解析 103
- 6.2.5 客户端交互 104
- 6.3 使用 limit 指令防止滥用 106
- 6.4 约束访问 110
- 6.5 流媒体文件 114
- 6.6 预定义变量 115
- 6.7 SPDY 和 HTTP/2 117
- 6.8 使用 Nginx 和 PHP-FPM 118
- 6.9 一个 Drupal 的配置示例 121
- 6.9 将 Nginx 和 uWSGI 结合 129
- 一个 Django 的配置示例 129
- 6.10 小结 131
第 7 章 Nginx 的开发 133
- 7.1 集成缓存 133
- 7.1.1 应用程序没有缓存 134
- 7.1.2 使用数据库缓存 135
- 7.1.3 使用文件系统做缓存 138
- 7.2 动态修改内容 141
- 7.2.1 使用 addition 模块 141
- 7.2.2 sub 模块 142
- 7.2.3 xslt 模块 143
- 7.3 使用服务器端包含 SSI(Server
- Side Include) 144
- 7.4 Nginx 中的决策 146
- 7.5 创建安全链接 150
- 7.6 生成图像 152
- 7.7 跟踪网站访问者 155
- 7.8 防止意外代码执行 156
- 7.9 小结 157
第 8 章 在 Nginx 中集成 Lua 159
- 8.1 ngx_lua 模块 159
- 8.2 集成 Lua 160
- 8.3 使用 Lua 记录日志 163
- 8.4 小结 163
第 9 章 故障排除技巧 164
- 9.1 分析日志文件 164
- 9.1.1 错误日志文件格式 164
- 9.1.2 错误日志文件条目实例 166
- 9.2 配置高级日志记录 168
- 9.2.1 调试日志记录 169
- 9.2.2 在运行时切换二进制运行
- 文件 169
- 9.2.3 使用访问日志文件进行
- 调试 175
- 9.3 常见的配置错误 177
- 9.3.1 使用 if 取代 try_files 178
- 9.3.2 使用 if 作为主机名切换 179
- 9.3.3 不使用 server 部分的配置追求
- 更好的效果 180
- 9.4 操作系统限制 181
- 9.4.1 文件描述符限制 181
- 9.4.2 网络限制 183
- 9.5 性能问题 184
- 9.6 使用 Stub Status 模块 186
- 9.7 小结 187
- 附录 A 指令参考 189
- 附录 B Rewrite 规则指南 224
- 附录 C Nginx 社区 236
- 附录 D Solaris 系统下的网络调优 239