本文介绍

本文主要介绍Nginx的发展历史、Nginx的特点以及现有的Nginx版本。通过这篇文章,让你对Nginx有一个大概的感性认识。

Nginx的发展背景

NetCraft在2018年发布的web服务器调查报告中,排名前三的依然是Microsfot、Apache和Nginx。其中Nginx每年都在不断递增。

该软件由俄罗斯人Igor Sysoev于2004年首次公开发布。

Nginx凭借其稳定性、低资源消耗、简单配置和丰富的功能,从十多年前名不见经传的Web服务器软件,发展到如今能够跟Apache匹敌的地位。

Nginx的主要用途

Nginx是一个异步框架的Web服务器,可以用作反向代理服务、负载均衡、API服务、静态资源服务和HTTP缓存服务。

Nginx的特点(优点)

  • 轻量级,资源消耗少,比Apache占用更少的系统资源
  • 高并发高性能,Nginx是异步处理请求,支持的并发度高
  • 高度模块化,可扩展性好
  • 稳定可靠

Nginx的开源版本和商业版本

Nginx目前分为开源版本和商业版本(Nginx Plus)

  • 开源版:nginx.org
  • 商业版:nginx.com

两个版本区别还是很大的,具体如下:

FeatureOSSNginx Plus
Load balancer--
HTTP/TCP/UDP supportYY
Layer 7 request routingYY
Active health checksNY
Session persistenceNY
DNS service‑discovery integrationNY
Content cache--
Static/Dynamic content cachingYY
Cache‑purging APINY
Web server/Reverse proxy--
Origin server for static contentYY
Reverse proxy: HTTP, FastCGI, memcached, SCGI, uwsgiYY
HTTP/2 gatewayYY
gRPC proxyYY
HTTP/2 server pushYY
Security controls--
HTTP Basic AuthenticationYY
HTTP authentication subrequestsYY
IP address‑based access control listsYY
Rate limitingYY
Dual‑stack RSA/ECC SSL/TLS offloadYY
TLS 1.3 supportYY
JWT authenticationNY
OpenID Connect SSONY
NGINX Web Application Firewall (additional cost)NY
Monitoring--
AppDynamics, Datadog, Dynatrace plug‑insYY
Extended status with 90 additional metricsNY
High availability (HA)--
Active‑active and active‑passive modesNY
Configuration synchronizationNY
State sharing: Sticky‑Learn session persistence, rate limiting, key‑value storesNY
Programmability--
NGINX JavaScript moduleYY
NGINX Plus API for dynamic reconfigurationNY
Key‑value storeNY
Dynamic reconfiguration without process reloadsNY
Streaming media--
Live streaming: RTMP, HLS, DASHYY
VOD: Flash (flv), MP4YY
Adaptive bitrate VOD: HLS, HDSNY
MP4 bandwidth controlsNY
Third party ecosystem--
Kubernetes Ingress controllerYY
OpenShift RouterYY
Dynamic modules repositoryNY

详细对比可以查看nginx官网原文介绍:https://www.nginx.com/products/nginx/#compare-versions

Nginx的版本策略

在Nginx中,有两个分支,分别为mainline和stable

  • Mainline相当于开发分支,更新比较频繁,包含一些新功能或者bug修复,版本号的第二个数字如果是奇数,则是Mainline版本,如1.17.1
  • Stable分支是稳定版本,除非有重大的bug,否则在它生命周期内不会更新,版本号的第二个数字如果是偶数,就是Stable版本,如:1.16.0

最新版本可访问nginx官网地址:http://nginx.org/en/download.html

我们用Nginx官网提供的一幅图来说明版本之间的关系:

Nginx的其他衍生版本(Tengine和OpenResty)

(1) Tengine

Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。

其详细的特性可以访问官网:https://tengine.taobao.org/

(2) OpenResty

OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

OpenResty® 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台。这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高性能 Web 应用系统。

OpenResty® 的目标是让你的Web服务直接跑在 Nginx 服务内部,充分利用 Nginx 的非阻塞 I/O 模型,不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都进行一致的高性能响应。

打赏

发表评论

您的电子邮箱地址不会被公开。