Nginx 简介
Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。
Nginx由来
俄罗斯的工程师Igor Sysoev,他在为Rambler Media工作期间,使用C语言开发了Nginx。Nginx作为WEB服务器一直为Rambler Media提供出色而又稳定的服务。他在2008的那个时候,公司坚持要将WordPress搬到软件上,这样才符合其开源哲学理念。此时,全球最有名的Web服务器——Apache,是最佳的选择对象,但是,当工程师开始修改软件安装设置的时候,Apache竟然死机了,尤其是在WordPress最繁忙的时候。“我们意识到在产生流量的时候它并不是超级稳定的。”Barry Abrahamson——WordPress的系统管理者后来提到。所以Automattic撤除了不稳定的Apache,将公司放在一个那时候根本不起眼的一个叫作Nginx的开源项目的赌注上。五年之后,WordPress仍然在Nginx上安稳运行,以至于后来很多其它公司都如法炮制。
Nginx最新版
nginx 1.18.0 发布了,这是继 1.16 版本之后的最新稳定版本。这个版本中 加入了 1.17.x mainline 分支中的新功能和 针对之前一些 bug 的修复,包括 limit_req 和 limit_conn 中的 dry run 模式,limit_rate, limit_rate_after 和 grpc_pass 指令中对变量的支持,以及支持 auth_delay 指令等。auth_delay 指令位于 ngx_http_core_module 模块中,用法如下:
语法:auth_delay time;
默认值:auth_delay 0s;
上下文:http, server, location
通过 401 响应状态码来延迟处理未经授权的请求,以防止因密码、子请求结果或 JWT 导致访问受限而引起的时序攻击(Timing Attack)。
其他比较重要的更新如下:
- 安全方面的改进,主要是修复针对 HTTP/2 客户端可能导致过多内存消耗和 CPU 使用率升高的问题
- 修复 nginx 在某些情况下可能过多占用 CPU 的问题,以及许多其他错误修复
- 需要使用 OpenSSL 0.9.8 或更高版本
根据 nginx 发布新版的策略,“稳定”指的是功能和更新频率,它与软件质量无关。稳定分支在其生命周期中从不接收新功能,并且通常仅接收一个或两个更新,用于修复严重的错误。另外,稳定版本通常 fork 自最新的 mainline 版本。因此,nginx 1.18.0 fork 自最新的 mainline 版本 1.17.10,它继承了过去一年中 1.17.x 的所有 bugfix 补丁、新增功能和其他变更。