统计数据 显示,超过 80% 的 Web 应用程序和网站由开源 Web 服务器驱动。在本文中,我将介绍最流行的开源 Web 服务器,并简要回顾它们的历史、技术、功能等。我还将提供一些技巧,以便您可以轻松部署其中一个流行的 Web 服务器。
根据 Wikipedia,Web 服务器是“通过 HTTP 处理请求的计算机系统,HTTP 是用于在万维网上分发信息的基本网络协议。该术语可以指整个系统,或者特指接受和监督 HTTP 请求的软件。” 在本文中,我们讨论的是专门处理最终用户 Web 请求的软件。
Apache HTTP Server
Apache HTTP Server(通常称为 httpd,或简称为 Apache)于 1995 年首次发布,并在 2015 年 2 月庆祝了其 20 周年。Apache 为全球 52% 的网站 提供支持,是迄今为止最流行的 Web 服务器。
虽然 Apache httpd 最常见于在 Linux 上运行,但您也可以在 OS X 和 Windows 上部署 Apache。不出所料,Apache 在 Apache License 2.0 版本下获得许可。Web 服务器本身使用模块化架构,其中可以加载额外的模块来扩展其功能。例如,加载 mod_proxy 将允许在您的服务器上使用代理/网关,而 mod_proxy_balancer 将为所有受支持的协议启用负载均衡。从 2.4 版本开始,Apache 还通过一个新模块 mod_http2 支持 HTTP/2。
由于 Apache HTTP Server 自 1996 年以来一直是最流行的 Web 服务器,因此它“受益于出色的文档以及来自其他软件项目的集成支持”。您可以在 Apache Foundation 项目页面上找到更多信息。
NGINX
Igor Sysoev 于 2002 年开始开发 NGINX,并于 2004 年首次公开发布。NGINX 的开发是为了解决所谓的 C10K 问题,C10K 问题是“如何设计一个可以处理一万个并发连接的 Web 服务器?”的缩写。NGINX 在按使用量排名的开源 Web 服务器列表中排名第二,运行着略高于 30% 的网站。
NGINX 依赖于异步事件驱动架构来帮助实现其处理大量并发会话的目标。由于其轻量级的资源利用率和易于扩展的能力,它已成为管理员中非常流行的 Web 服务器。
NGINX 在类似 BSD 的许可下发布,不仅可以部署为 Web 服务器,还可以部署为代理服务器或负载均衡器。您可以在 NGINX 社区站点上找到更多信息。
Apache Tomcat
Apache Tomcat 是一个开源 Java servlet 容器,可用作 Web 服务器。Java servlet 是一个 Java 程序,它扩展了服务器的功能。虽然 servlet 可以响应任何类型的请求,但它们最常用于实现托管在 Web 服务器上的应用程序。此类 Web servlet 是 Java 对应物,对应于其他动态 Web 内容技术,例如 PHP 和 ASP.NET。Tomcat 的代码库于 1999 年由 Sun Microsystems 捐赠给 Apache Software Foundation,并于 2005 年成为顶级 Apache 项目。它目前为略低于 1% 的网站提供支持。
Apache Tomcat 在 Apache License 2.0 版本下发布,通常用于运行 Java 应用程序。但是,它可以与 Coyote 扩展,以执行充当普通 Web 服务器的角色,该服务器将本地文件作为 HTTP 文档提供服务。更多信息可以在 项目网站上找到。
Apache Tomcat 经常与其他开源 Java 应用程序服务器一起列出。一些示例包括 JBoss、Wildfly 和 Glassfish。
Node.js
Node.js 是一个用于网络应用程序(如 Web 服务器)的服务器端 JavaScript 环境。Node.js 的市场份额较小,为 0.2% 的网站提供支持。Node.js 最初由 Ryan Dahl 于 2009 年编写。Node.js 项目由 Node.js 基金会管理,并由 Linux 基金会的协作项目计划推动。
Node.js 与其他流行的 Web 服务器之间的区别在于,它主要是一个跨平台运行时环境,用于构建网络应用程序。Node.js 应用了能够进行异步 I/O 的事件驱动架构。这些设计选择优化了 Web 应用程序的吞吐量和可扩展性,从而可以运行实时通信和浏览器游戏。Node.js 还突出了 Web 开发堆栈的差异,其中 Node.js 显然是 HTML、CSS 和 JavaScript 堆栈的一部分,而 Apache 或 NGINX 是许多不同软件堆栈的一部分。
Node.js 在 混合许可下发布;更多信息可在 项目网站上找到。
Lighttpd
Lighttpd(发音为“lightly”)于 2003 年 3 月首次发布。它目前为大约 0.1% 的网站提供支持,并在 BSD 许可下分发。
Lighttpd 以其低内存占用、小 CPU 负载和速度优化而著称。它使用事件驱动架构,针对大量并行连接进行了优化,并支持 FastCGI、SCGI、Auth、输出压缩、URL 重写和更多功能。Lighttpd 是 Catalyst 和 Ruby on Rails Web 框架的流行 Web 服务器。在 项目主页上查找更多信息。
提示
如果您正在寻找尝试其中一个流行的 Web 服务器,我强烈建议您下载 LAMP (Linux, Apache, MySQL, PHP) 或 LEMP (Linux, NGINX, MySQL, PHP) 堆栈。有许多这样的堆栈可用,例如在 Apache 和 PHP 版本中提供不同的风格。它们通常作为一键安装程序提供,或在 Linux 上的包/软件管理器中提供。
成功完成安装过程后,您可以启动 Web 服务器,并尝试一个 Hello World 示例。这是开始了解 Web 服务器的来龙去脉以及 Web 服务器更广泛的工作原理的好方法。
总结
这绝不是 Web 服务器的详尽列表。我收录了一些最流行的 Web 服务器,并研究了它们支持的技术。如果您对更多细节感兴趣,特别是 Apache 和 NGINX 的差异,我建议您阅读这篇关于选择 Web 服务器的 实际考虑因素的文章。
当然,我们总是对您出于 Web 开发或托管需求而选择的 Web 服务器感到好奇。请在评论中告诉我们。
12 条评论