title: Nginx category: page slug: nginx sortorder: 0721 toc: False sidebartitle: Nginx meta: Nginx 是一个部署普遍的 web 服务器,它同时也可以作为 WSGI Python web 应用的反向代理。 translators: blog.chriscabin.com updated: 2016-08-01 08:00
Nginx
Nginx 是 前 10 万个网站中第二常用的 web 服务器。Nginx 也可以作为 Python WSGI 服务器 或者甚至是其它 web 服务器(例如 Apache)的反向代理,用于处理请求并回传响应。
我该使用 Nginx 还是 Apache HTTP 服务器?
让我们认清这两款“竞争”的服务器:它们都是非常棒的开源项目,并且都能够很好地为你的 web 应用部署提供服务。事实上,许多全球顶级的 web 应用在它们许多部署步骤中都同时使用这两款服务器,通过完整的 HTTP 请求—响应周期。
相对于 Apache,我个人使用 Nginx 更为频繁,因为它的配置文件感觉写起来更容易,并且有更少的可选模板。
这也有点懒惰的成分:Nginx 工作得很好,它从不会给我带来问题。所以,我坚持使用我久经沙场的 Ansible 配置管理 文件来设置 Nginx 使用 HTTPS 和 SSL/TLS 证书。
Nginx 安全防护
通过系统包管理器或者源码编译进行标准安装后的默认 Nginx 配置是一个很好的安全基础。 然而,最开始几次尝试设置密码和重定向会让人很疑惑。一个非常好的办法是阅读相关教程来确保你在被 HTTP(S) 配置折磨时避免最常见的安全错误
黑客新闻破坏了我们的网站——Nginx 和 PageSpeed 如何修复问题 主要说明了优化 Nginx 配置以实现更高效地 SSL 连接。这篇文章也包括了使用 Ansible 和 Pagespeed 模块的配置管理,其中,Pagespeed 模块是 Google 为 Nginx 和 Apache HTTP 服务器 开发的模块。
使用 Let’s Encrypt 和 Nginx 增强 Web 部署安全 详细演示了在 Ubuntu 14.04 下使用 Nginx 设置 HTTPS。
如何在 Ubuntu 14.04 上添加 Nginx 安全防护 说明了 SSL 配置和 IP 地址黑名单,然后提供了其它一些更高级的安全模块教程。
在 Nginx 上增强 SSL 安全 说明了如何缓和高调的 SSL 攻击,例如 Logjam, Heartbleed 和 FREAK。
常见 Nginx 资源
在 开源应用架构一书 中的 Nginx 章节 详细说明了为何 Nginx 以某种方式扩展构建,并且拥有很棒的部署之旅课程。
Nginx 内部:我们如何针对性能和扩展性进行设计 是一篇来自 Nginx 开发者的博客,说明了他们为何相信他们的架构模型要比其它构建 web 服务器的方法更加高效,更具扩展性。
测试驱动 web 服务器配置 是一个非常好的故事,说明了如何反复应用配置变动,例如路由流量到 Piwik 进行web 分析、作为应用后端进行反向代理、以切当的方式终止 TLS 连接。 阅读一个写得很好的软件部署文章可以让人映像深刻,就像这篇来自政府机关的文章,虽然 UK 政府数字服务,还有美国 18F 以及美国数字服务形成了比最典型的机关更为可靠的文化。
针对开发者的 Nginx 介绍 给出了最初几步来配置 Nginx 并运行它。
一个更快的 Web 服务器:用 Nginx 替代 Apache 说明了在某些情况下为了提升性能可以使用 Nginx 替换 Apache。
Nginx 对比 Apache:我们的看法 由 Nginx 背后的开发者以第一方视角说明 web 服务器之间的差别。
使用 Nginx 速度限制 说明了如何缓解使用 Nginx 速度限制进行密码暴力猜测尝试的问题。
Nginx 使用动态上游 是一篇非常重要的笔记,说明了如果你正在使用 Nginx 作为反向代理,如何使用变化的主机名设置你的上游 WSGI 服务器。
Nginx 缓存 说明了如何设置 Nginx 用于缓存 HTTP 请求,这通常可以使用 Varnish 完成,但是也可以使用
proxy_cache
和相关指令交给 Nginx 处理。Nginx web 服务器教程 是最旧但也最好的教程,它说明了如何设置之前版本的 Nginx。
Nginx 中使用动态日志格式 说明了在 Nginx 中如何使用 HttpSetMiscModule 模块转换变量,并将输入映射到日志的可控制输出中。作者使用这种技术进行像素追踪,这种方法也可以用于其它目的,例如高级调试。