Nginx 何时取代 Apache?

  • 刘志勇

2016 年 11 月 14 日

话题:Apache语言 & 开发架构运维

Nginx 和 Apache 都是流行的开源 Web 服务器。Apache 是世界使用排名第一的 Web 服务器软件,是 Apache 软件基金会的一个开源 Web 服务器,几乎所有的计算机平台都可以运行,由于其开放的 API 接口,使得 Apache 有超多的模块,基本想到的都可以找到;加之历史悠久,因此相关文档齐全,因此,长期雄踞 Web 服务器市场的巅峰。

而 Nginx 最初是俄罗斯程序员 Igor Sysoev 开发的轻量级开源 Web 服务器,同时也是一个反向代理服务器和电子邮件代理服务器,并在一个 BSD-like 协议下发行。

Apache 是顶级的 Web 服务器,但是 Nginx 持续增长,而 Microsoft IIS 几十年来首次下降到 10%以下。

用户自然会关心,Nginx 会不会取代 Apache,以及何时能取代 Apache?Nginx 首席执行官 Gus Robertson 近日就表示,这两者的使用场景并不同,并不存在谁取代谁的问题。

Nginx已经成为第二大 Web 服务器。它很久以前就超越了微软的Internet Information Services(IIS),长期以来,它一直逼近顶级 Web 服务器Apache。但是,Nginx 首席执行官 Gus Roberston 在接受采访时表示,Apache 和 Nginx 的用户范围并不相同。

Robertson 表示:“我认为 Apache 是一个卓越的 Web 服务器。但 Nginx 和它不是一个相同的使用案例。我们不认为 Apache 是一个竞争对手,我们的客户使用 Nginx 来替换硬件负载均衡和构建微服务,这两者都不是 Apache 干的事。”

事实上,Roberston 发现许多用户同时使用两个开源 Web 服务器,他说,客户在 Apache 的前端使用 Nginx 进行负载平衡和应用,它们的架构完全不同,可以提供更好的并发性能。他还表示,在云配置方面,Nginx 表现会更好。

Roberston 总结道:“我们(Nginx)是唯一仍在增长的 Web 服务器,而其他 Web 服务器正在萎缩。”

然而这不是事实。根据10 月份 Netcraft 的 Web 服务器调查,Apache 本月活跃网站增长最多,获得 180 万;而 Nginx 增长 40 万,仅次于 Apache。

这些增长,加上微软损失的 120 万活跃网站,导致微软的活跃网站份额下降到 9.27%,首次跌至 10%以下。Apache 在市场份额提高了 0.19%,并继续占据主导地位,现在拥有 46.30%的活跃网站。尽管如此,多年来 Apache 一直在慢慢下降,而 Nginx 现在只有 19%。

目前,Nginx 的开发人员正在继续改进开放核心商业网络服务器Nginx Plus,以求提高其竞争力。Web 服务器使用最新版本的Nginx Plus Release 11(R11),更易于扩展和自定义,并支持更广泛的部署。

最大的提升是动态模块(dynamic modules)的二进制兼容性。这意味着为开源 Nginx 软件编译的动态模块可以加载到 Nginx Plus 中。

还意味着开发人员可以利用大量的第三方 Nginx 模块来扩展和添加功能到 Nginx Plus,从一系列开源模块到商业模块。开发人员可以基于支持的 Nginx Plus 核心创建自定义扩展、附加组件和新产品。

Nginx Plus R11 还增加了其他增强功能:

  • 改进的 TCP/UDP 负载平衡:新功能包括 SSL 服务器名称路由、新的日志功能、附加变量和改进的 Proxy 协议支持。这些新功能增强了调试功能,使开发者能够支持更广泛的企业应用程序。
  • 通过 IP 地址更好地进行地理定位:第三方 GeoIP2 模块现已通过认证,并提供给 Nginx Plus 客户。相比原始 GeoIP 模块,新版本提供了更为本地化和更丰富的位置详细信息。
  • 增强的 nginScript 模块:nginScript 是基于 JavaScript 的 Nginx Plus 的下一代配置语言。开发者能使用新功能在 Stream(TCP/UDP)模块中即时修改请求和响应数据。

可以预见的是,在这场旷日持久的角逐顶级 Web 服务器的战争中,Nginx 会同 Apache 进行激烈的竞争。而微软的 IIS,则继续缓慢地衰落,走向消亡。


感谢陈兴璐对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

Apache语言 & 开发架构运维