Nginx 对比 Apache:主要功能、性能基准以及如何选择

免责声明:HostScore由读者支持运营。当您通过我们的链接进行购买时,我们可能会获得佣金。本网站所有价格均以美元 (USD) 显示,除非另有说明。

目录

向 AI 諮詢本頁內容::
ChatGPT
克劳德
Perplexity
Grok
Google AI

以上皆是 Nginx的 金益辉 Apache 是功能丰富、性能卓越的成熟产品。它们均来自开源平台,您可以在 Windows 或 Linux 服务器上部署它们。 

但是,一些关键差异可能会让您选择其中一个。

例如, Apache 是一个全面的解决方案,开箱即用地支持许多不同的技术和模块。 相比之下,Nginx 依赖第三方模块来扩展其功能。

为了了解哪个 Web 服务器可能更适合您的需求,让我们深入了解这些选项。

概述

Apache,原始英雄 Web 服务器

Apache

创建于 1995 年 罗伯特·麦库尔 最初称为“Apache HTTP 服务器项目”(因此得名), Apache 旨在打造一款功能强大、商业级的服务器,即使经过修改也可免费使用。由于它能够在从 Unix 到 Windows 等多种操作系统上运行,因此迅速流行起来。

由于这种长期流行,我认为 Apache 作为“最初的英雄” Web 服务器。它功能强大,文档齐全,并由一个由 Apache 软件基金会。

Nginx,新时代的巨人

Nginx的

Nginx(发音为“Engine X”)是 HTTP 和反向代理服务器、邮件代理服务器和通用 TCP/UDP 代理服务器,用于托管各种规模的网站和应用程序。 它首先由俄罗斯开发商公开发布 Igor Sysoev。Nginx 最初的目标是解决 C10K 问题, Apache 努力管理。 

2019 年,Nginx 成为 F5 Networks 的一部分。F5 是一家专注于应用安全、多云管理和在线欺诈预防的技术公司。

市场份额和特点

市场份额

比较 Nginx 和 Apache 市场份额
基于 W3Techs 数据的 Web 服务器使用情况统计。过去 3 年,Nginx 和 Apache 一直处于网络服务器市场的领先地位。

主要差异

产品特性Nginx的Apache
介绍20041995
当前稳定版本nginx 1.27.0Apache 2.4.63
卓越事件驱动流程驱动
开源
开发与支持Apache 基金会F5网络
支持的平台主要基于 UnixUnix和Windows
多个并发请求没有
本机动态内容处理没有
模块化
配置有限每个目录通过 .htaccess
请求口译传递 URI传递文件系统位置

核心架构

Nginx 和 Apache 在他们的核心架构上有一些相似之处。 例如,它们都使用主从进程来提高性能。 他们甚至有类似的配置文件。 然而,架构风格的差异导致了显着的宽视角性能变化。

Nginx 具有资源友好的事件驱动架构,在负载下使用少量但恒定的内存。 此特性使其非常适合托管具有高流量水平或具有间歇性流量峰值的网站。

Apache其进程驱动架构通过专用线程处理每个连接,这需要更多内存。不过,在拥有更多 CPU 核心和 RAM 的机器上,它在高负载下具有更好的扩展性。

内存使用

Nginx 以高性能和低资源消耗着称。 另一方面, Apache 可能会占用大量内存,尤其是在运行多个服务器块时。 虽然两者都使用内存来处理 HTTP 请求,但 Nginx 更轻量级。 

设计 Apache 这意味着它为每个连接生成一个线程,并且每个线程将使用一定数量的 RAM。 随着流量的增加,这可能会导致问题,因为需要更多的 RAM,尤其是在内存较少的服务器上。 Apache 还为每个请求创建新进程,即使来自同一个用户。

相比之下,Nginx 使用一个进程一次处理多个连接。 

PHP 基础操作

因为这两个 Web 服务器都主要与 PHP,他们如何处理代码意味着巨大的性能潜力。 Nginx 不执行 PHP 默认直接。 相反,它将请求传递给 PHP-FPM(FastCGI进程管理器),它处理请求并将响应发送回 Nginx,然后 Nginx 将内容返回给客户端。

由于 Nginx 不等待来自 PHP-FPM 服务另一个请求(类似于它在服务静态内容时不等待来自客户端的响应),Nginx 可以同时处理比 Apache 将能够管理。

Apache 使用名为 mod_php 的模块来执行 PHP 代码。 在这个模型中,每次 HTTP 请求进来时, Apache 生成一个新的进程或线程(取决于其配置方式)来处理该请求。此进程还负责处理任何 PHP 该请求中的请求。

这个模型有效,但它有一些缺点。 一方面,为每个请求生成一个新进程可能会在系统上占用大量资源,尤其是在有许多同时请求的情况下。 为每个人生成一个新流程 PHP 请求中的请求更加密集,因为操作系统必须为每个请求生成一个全新的解释器。

性能基准

在一个 Cyber​​Panel 的详细性能基准报告,几个关键测试突出了 Nginx 和 Apache。观看以下视频了解完整的测试过程。

总结:

  • Nginx的:可处理高达 10,000 个并发连接,且内存占用低。在基准测试中,其静态内容传输速度比 Apache.
  • Apache: 相比之下, Apache 对于静态内容来说,它很有效,但效率不如 Nginx。由于其进程驱动的架构, Apache由于管理多个进程的开销,在高并发性下的性能可能会下降。

Nginx 对比 Apache HPMC胶囊 WordPress

中的上下文 WordPress 性能方面,Nginx 显著提高了加载时间,特别是对于静态内容,使其成为高流量的首选 WordPress 站点。其事件驱动架构可有效处理并发连接,从而缩短响应时间并降低服务器负载。

Apache另一方面,它通过以下模块提供强大的动态内容处理 mod_php,这可以简化部署 WordPress 严重依赖动态内容的网站。不过,Nginx 通常能为以下网站提供更好的性能和资源效率: WordPress 专注于静态内容交付的环境。

如何在 Nginx 和 Apache

如你所见,这些 Web 服务器巨头之间并没有明显的胜负之分。这主要取决于你需要 Web 服务器管理什么。 

选择 Apache 如果: 

  • 遗留系统和兼容性: Apache 由于其在市场上长期存在,因此通常是长期使用它的系统的首选。如果您的基础设施严重依赖于 .htaccess 每个目录的配置文件, Apache 更为合适,因为它本身支持这些文件,允许在共享托管环境中进行分散配置和灵活性。
  • 动态内容处理:如果您的应用程序需要大量处理动态内容,例如 PHP、Python 或 Ruby 脚本, Apache 由于能够将处理器直接嵌入模块中,因此具有优势。此设置简化了动态脚本在服务器中的直接执行。
  • 易于使用和文档: Apache的广泛采用意味着它拥有大量的文档和社区支持。更容易找到指南、教程和支持 Apache相关问题,使其成为初学者或喜欢大型知识库的人更友好的选择。

在以下情况下使用 Nginx:

  • 高性能和 Scala吴春明:Nginx 针对处理大量并发连接进行了优化,使其成为高流量网站或需要可扩展性的应用程序的理想选择。其事件驱动架构使其能够以较低的内存占用处理大量连接,从而高效地交付静态内容。
  • 负载平衡和反向代理:Nginx 常用作反向代理和负载均衡器,将传入流量分配到多个后端服务器。此功能使 Nginx 成为高可用性设置和需要高效负载分配的环境的理想选择。
  • 静态内容传送:如果您的应用程序提供大量静态内容,例如图像、CSS 或 Java脚本文件,Nginx 因其直接提供静态文件的速度和效率而出类拔萃。它的架构允许以最小的开销快速交付静态资源。
  • 配置简单:虽然 Nginx 不支持 .htaccess 文件,其配置语法简单易懂。这种简洁性对于那些希望维护简洁服务器配置的用户来说非常有益。

组合使用

对于许多设置,同时使用 Apache 和 Nginx 结合起来可以发挥各自的优势。

一个常见的配置是将 Nginx 作为反向代理放在 Apache这使得 Nginx 能够高效地处理静态内容和并发连接,同时 Apache 管理动态内容处理。这种混合方法可以优化复杂 Web 环境中的性能和资源利用率。

总结

无论你跑 Apache 或 Nginx 取决于你的需求和你正在运行的硬件。你可以使用任意一个选项来提供服务 PHP 网站。 但除此之外,还有很多事情需要考虑。 

如果你的网站比较简单,你可能不会注意到它们之间的区别。但是,如果网站流量增加,规模不断扩大,你就需要了解每台服务器在负载下的性能和扩展能力。

关于作者: Timothy Shim

Timothy Shim 是一位作家、编辑和技术爱好者。他的职业生涯始于信息技术领域,之后他迅速进入印刷领域,并与国际、地区和国内媒体合作,包括 ComputerWorld、PC.com、《今日商业》和《亚洲银行家》。他的专长在于从消费者和企业的角度研究技术领域。
作者照片

更多HostScore内容

找到合适的网站主机

不确定哪种主机方案适合您的网站?网站主机查找器会根据您网站的实际需求(工作负载、使用情况和优先级)匹配真正合适的主机选项。

建自 HostScore凭借其真实的托管经验和性能研究,它可以帮助您避免支付过高的费用、资源配置不足或选择无法扩展的方案。

试试网站托管查找器(免费)