7 个适用于小型到大型站点的开源 Web 服务器

开源网络服务器:多样化的选择

自从首个网络服务器面世以来,技术已经取得了长足的进步。如今,我们拥有更多令人兴奋的选择。

不同的项目需要不同的解决方案,但在开源网络服务器领域,竞争格局几乎被少数几个主要参与者垄断。在很长一段时间里,Apache 是唯一的选择,处理高负载是一件极具挑战的事情。值得庆幸的是,时代已经改变,出现了专门针对特定需求的创新解决方案。

现在,让我们一起来看看当今市场上最优秀、最流行的开源网络服务器。

Apache

Apache 几乎是万维网的代名词,并且仍然为全球大部分网站提供动力。

Apache 能够占据主导地位主要归功于三个因素:开放的许可证、先发优势(该项目早在 1995 年就已发布!)以及 PHP 的轻松部署。最后一个优势是通过 mod_php 模块实现的,这意味着安装 Apache 就意味着您已经为 PHP 开发做好了准备。

以下是 Apache 的优势所在:

  • 跨平台兼容性:支持 Linux、Windows、macOS 等多种操作系统。
  • 作为所有 CPanel 共享主机的默认服务器,简化了网站的设置和修改。
  • 通过丰富的 模块 集合提供广泛的功能。无论您的需求多么特殊,总能找到一个合适的 Apache 模块。
  • 支持通过 .htaccess 文件对每个目录进行配置。
  • 全面支持 HTTP/2、压缩、静态文件和负载均衡。
  • 提供用于处理高并发的 MPM 和 FastCGI 模式。
  • 支持使用 Lua 轻松编写脚本。

Apache 适合您吗?

简而言之,答案是肯定的。虽然曾经有一段时间,Nginx(我们接下来会讨论)因其卓越的性能而备受关注,但 Apache 在其 2.2 版本发布后迅速赶上。尽管如此,Nginx 作为后来居上者,仍然吸引了大量关注,因此您可能会听到一些对其功能(实际上并不成立)的批评。

Nginx

如果您热衷于追逐“潮流”(或者更准确地说,关注“最新”发展),您可能听说过 Nginx (发音为 “engine-x”,这正是其名称的由来)。该项目由一位俄罗斯工程师于 2002 年推出,他当时厌倦了现有解决方案无法克服 C10k 问题(即处理数千个并发连接)。

Nginx 一经问世便引起了轰动,许多人直接放弃了 Apache,并且再也没有回头。这种趋势一直延续至今。虽然如今的 Apache 可以说与 Nginx 不相上下,但 Nginx 提供的许多惊人改进帮助其赢得了胜利。

  • 采用异步架构处理高负载。
  • 提供一流的静态文件处理、负载均衡和反向代理功能。
  • 支持 FastCGI 缓存。
  • 通过缓存支持 uwsgi、SCGI 和其他服务器协议。
  • 提供 Gzipping、图像转换、字节范围、分块响应,并支持 FLV 和 MKV 流。
  • 支持 WebSockets、Keep-Alive 和管道连接。
  • 提供访问控制、错误重定向等功能。

总而言之,Nginx 是一个强大的引擎,拥有一系列使其保持领先地位的特性。由于其背后的公司是一家可持续发展的企业,因此它可以为复杂的项目提供付费支持和咨询,这对于某些用户来说可能非常有用。

Nginx 适合您吗?

如果您希望根据自己的需求构建 Web 应用程序,那么 Nginx 是一个强大的工具。您可以使用它来设计具有强大缓存、代理和负载均衡功能的复杂分布式系统。此外,您还可以使用 Nginx 直接提供经过多项优化的静态文件。

而且,值得一提的是,Nginx 已经为 HTTP/2 做好了准备。

如果您对 Nginx 感兴趣,可以了解一下这个 基础课程

Caddy

最近在开源社区引起轰动的最新框架之一是 Caddy

可以将 Caddy 视为类似于 Nginx 的网络服务器(语法相似),但它的设计更简化、更易于使用。例如,您只需三行配置即可完成 Let’s Encrypt SSL 集成。

以下是 Caddy 引起广泛关注的原因:

  • 默认启用 HTTPS。您无需费力安装或更新 SSL 证书。
  • HTTP/2 成为主要焦点。
  • 默认轮换 TLS 会话票证密钥,这使得 TLS 连接管理更加安全,不易受到 Heartbleed 等攻击。
  • 无需依赖:它是一个 Golang 编译的二进制代码库,不依赖任何底层系统库。
  • 默认提供当前目录中的静态文件!
  • 可嵌入:可以在其他程序中用作库。

Caddy 适合您吗?

如果您追求简单易用,并且对 Apache 和 Nginx 等复杂的配置感到厌烦,那么 Caddy 会给您带来耳目一新的感觉。也就是说,当您对默认设置感到满意时,它的优势最为明显。例如,如果您想使用自己的 SSL 提供程序,为静态文件设置单独的目录(这种情况非常常见),那么它的优势就会减弱。

您可以在 Kamatera 上获得 Caddy 虚拟机,每月只需 4 美元。

Lighttpd

大多数现代网络服务器的一个不足之处在于资源使用。Lighttpd旨在克服低内存和低 CPU 环境中的这些挑战。

Lighttpd 基于异步请求处理模型构建,因此本质上与 Nginx 的工作方式类似。但是,存在一个问题:Lighttpd 在单线程中运行,因此如果您拥有一台性能更强的机器,它将忽略其他 CPU 内核。此外,它还缺少 Nginx 的一些更高级的功能,例如 SSL 代理和 HTTP/2 等。

Lighttpd 适合您吗?

Lighttpd 是一款功能强大的单线程网络服务器,可以轻松处理每秒数百个请求,并且仍然可以轻松占用系统资源。除此之外,与其他替代方案相比,它没有太多可提供的功能。因此,也许如果您不需要太多花哨的功能,并且非常渴望节省机器资源,那么 Lighttpd 值得您去探索。

Monkey 服务器

尽管名称有些奇怪,但 Monkey 网络服务器是一个有趣的项目,目前仍在积极开发和维护中。

Monkey Server 的主要吸引力在于对嵌入式平台的支持。您需要自己编译服务器,但可以排除所有不必要的功能,最终得到一个轻量级、快速的网络服务器。

  • 主要针对 Linux,但也支持 macOS。
  • 完全支持基于 ARM 的处理器。
  • 在 Android、Raspberry Pi 和其他嵌入式平台上完美运行。
  • 最少的运行时间(100 KB,不含插件)。
  • 支持 IPv6 和 TLS。
  • 支持 CGI 和 FastCGI。
  • 提供基本身份验证、安全规则等功能。

Monkey Server 适合您吗?

如果您需要针对嵌入式设备,Monkey Server 几乎可以满足您的所有需求。也就是说,它同样适用于 x86 和 x86-64 架构,并且可以在强大的机器上运行大型应用程序。与其他替代网络服务器相比,它拥有更活跃、更充满活力的社区,因此您永远不会感到迷茫。

OpenLiteSpeed

OpenLiteSpeed 是 LiteSpeed Technologies 提供的企业级网络服务器的开源版本。

以下是您可能会喜欢 OpenLiteSpeed 的原因:

  • 与 Apache 的 mod_rewrite 兼容,这意味着如果您有大量的 Apache 文件,迁移将变得非常简单。
  • 采用 Nginx 类似的事件驱动架构,实现高吞吐量。
  • 提供基于 GUI 的管理界面,带来愉快的配置体验。
  • 提供用于 PHP 的原生 SAPI,带来更高的性能。
  • 默认情况下应用缓存和 Google PageSpeedInsights 优化。

OpenLiteSpeed 适合您吗?

OpenLiteSpeed 非常适合基于 WordPress 的内容驱动型网站,因为页面优化已经是服务器的一部分。由于它针对 PHP 性能进行了微调,因此基于 PHP 的代码库和项目可以从中获益良多。

Cherokee

Cherokee 项目起源于开发者个人需求的尝试,如今已成长为一个不错的网络服务器平台。虽然它没有 Nginx 那样尖端的功能,但它确实为主流网络服务器提供了一个简单、有趣且高性能的替代方案。

Cherokee 最大的优势在于其简单易用性。无需费力地使用命令行来配置服务器。它配备了一个友好的基于 Web 的界面,对于那些喜欢通过点击来完成操作的用户来说是一种乐趣。

来源:Linode

尽管 Cherokee 的开发活动不是非常活跃,但它仍然是大多数日常项目的不错选择。您一定要试用一下!

结论

没有网络服务器,我们的生活将变得毫无意义。幸运的是,如今我们有如此之多的选择。您最喜欢的开源网络服务器是什么?如果您认为我遗漏了列表中的重要条目,请在评论中告诉我,我很乐意将其添加进来! 🙂