Apache 与 Nginx:你应该选择哪个 Web 服务器

2022-12-19 0 877

Apache vs Nginx 是当仁不让的热门话题。如果你对那款伺服器更适宜你感到疑惑,那么久让我们在责任编辑中找寻标准答案吧。

Apache 和 Nginx 是现今为网络提供更多动力系统的最盛行的Web 伺服器。他们共同负责管理为网络上超过 50% 的网络流量提供更多服务项目。但近几年,Apache 出现了大幅下滑,原本的是 Nginx。从多层面上讲,这两个网络平台做的核心理念事情是完全相同的:代销和服务项目web文本。因此,在两个某一的情景中,二者都具有独有之处。

1、Apache:机能丰富的 Web 伺服器

Apache 是两个组件化、业务流程驱动力系统的 Web 伺服器插件,它为每一同时相连建立两个新缓存。它全力支持很多机能。当中很多被校对为原则上的组件并扩充其核心理念机能。Apache 的组件能提供更多从伺服器端C语言全力支持到身份验证监督机制的大部份文本。

Apache Web 伺服器是两个组件化插件,图书馆员能在当中优先选择所需的机能并根据所需的某一机能加装不同的组件。大部份组件都能校对为 与主 Apache 文档合二为一存在的动态共享资源第一类(DSO)。雷西县采用 DSO 方法,因为它使从伺服器实用性中加进/删掉/预览组件的各项任务比较简单。

Apache 与 Nginx:你应该选择哪个 Web 服务器

Apache 构架的另两个基本要素是冷却系统,它容许组件与其他组件建立的文本进行可视化。这种可视化包括身份验证、病原体扫描器以及动态和动态文本的填充。

图书馆员时常优先选择 Apache 原因在于它的稳定性、机能和广为的全力支持。

相关:

在Ubuntu中采用mod_status组件监控Apache操控性https://www.linuxmi.com/ubuntu-mod_status-apache.html加速在Ubuntu 20.04上铺设LAMP伺服器及WordPress网志https://www.linuxmi.com/ubuntu-20-04-lamp-wordpress.html

2、Nginx:专为操控性和扩充性而结构设计

Nginx 是白俄罗斯应用软件开发人员 Igor Sysoev 建立的,意在解决两个名叫 C10K 的问题——伺服器如何全力支持10000个并发相连,也就是concurrent 10000 connection(这也是c10k这个名字的由来)。它是专门为解决 Apache Web 伺服器的操控性限制而编写的。该伺服器于 2002 年首次建立为http://rambler.ru 网站的扩充工具。

Apache 与 Nginx:你应该选择哪个 Web 服务器

相关:

NGINX 之父 Igor Sysoev 已优先选择退出 F5 公司https://www.linuxmi.com/nginx-igor-sysoev-f5.html如何在 Linux 上加装 Nginx Web 伺服器 https://www.linuxmi.com/linux-nginx-web-server.html

NGINX 是两个高操控性的异步 Web 伺服器。它采用事件驱动力系统的构架来处理大量的相连。由于我们将在责任编辑中看到的各种原因,它现在比 Apache Web Server 更受欢迎。

Nginx 主要用于提供更多动态文档,但今天,它已经发展成为两个完整的 Web 伺服器,能处理大部份伺服器各项任务。如今,Nginx 也被用作反向代理、负载均衡器和 HTTP 缓存。在某些用例中,Nginx 还用作 Web 加速器或 SSL/TLS 终结器。

图书馆员时常优先选择 Nginx 原因在于它的资源效率和负载下的响应能力。

3、Apache 与 Nginx:详细对比

构架

在 Apache 与 Nginx 的情况下,它们运行的两个 Web 伺服器的构架之间存在核心理念差异。

最重要的是,Apache 和 Nginx 之间的主要区别在于它们如何处理客户端请求。Apache 采用业务流程驱动力系统的方法并为每一请求建立两个新缓存。而 NGINX 采用事件驱动力系统构架在两个缓存中处理多个请求。

在 Apache 中,单个缓存只与两个相连相关联,而 Nginx 中的单个缓存能处理多个相连。大部份进程都与其他相连一起放入事件循环中,并进行异步管理。此过程消耗更少的内存,从而提高操控性。

Apache 与 Nginx:你应该选择哪个 Web 服务器

最重要的是,由于 Nginx 的内存消耗较低,它往往能够同时处理更多的相连而不会使主机伺服器过载。如果 Apache 面临大量请求,它最终可能会消耗大部份系统内存并要求将数据存储在交换中,这会显着降低操控性。

Apache 与 Nginx:你应该选择哪个 Web 服务器

操控性:动态/动态文本

Web 伺服器的操控性主要由两个参数来判断,即处理动态文本和动态文本的能力。

动态文档不需要处理,因此这对于测量伺服器的响应时间很有用。那么,每台伺服器能以多快的速度交付小型动态文档呢?当涉及到动态文本时,这里是 Nginx 的亮点,因为文档能直接、加速地提供更多给客户端。根据通过运行多达 1000 个同时相连执行的基准测试,Nginx 的执行速度比 Apache 快 2.5 倍。同时,RAM消耗更低。为了处理负载,Nginx 采用的系统内存减少了 5-6%。区别主要来自伺服器构架。

对于显示动态文本,测试结果显示 Apache 与 Nginx 的操控性完全完全相同。

Nginx 没有任何原生处理动态文本的能力。它不是为动态文本的本地处理而结构设计的。Nginx 必须传递给外部处理器来处理 PHP和其他动态文本请求。这可能会使事情稍微复杂化,尤其是在尝试预测容许的相连数量时。

与 Ngnix 不同,Apache 能通过将 PHP 等语言的处理器嵌入到其每一工作实例中来处理动态文本。这容许它在 Web 伺服器本身内执行动态文本,而无需依赖外部组件。

定制

Apache 具有动态加载的组件,能在需要时采用。该伺服器全力支持很多不同的组件,包括官方和第 3 方。这使得 Apache 成为两个非常可定制的网络平台,用户能根据自己的需要进行定制。这些组件可用于重写 URL、验证客户端、日志记录、缓存、强化伺服器、填充、身份验证等。动态组件能大大扩充核心理念机能,而无需太多额外的工作。

Apache 与 Nginx:你应该选择哪个 Web 服务器

Nginx 组件需要集成到内核中,不能动态加载。要包含非标准组件,用户必须从源代码校对他们的伺服器。

Nginx Web 伺服器缺乏这种能力,使得 Apache 在这方面更加灵活。

实用性

除了主实用性文档之外, Apache 还容许通过.htaccess文档在每一目录的基础上进行附加实用性。对 .htaccess 文档所做的更改会立即应用于系统。这些文档包括从重定向规则到内存限制等等的大部份文本,并有效地容许 Web 伺服器的分散实用性。此外,此构架容许非特权用户控制其网站的某些方面,而无需授予他们编辑主实用性的权限。

然而,这种稳定性是以牺牲操控性为代价的。每次.htaccess启用文档时,Apache 必须遍历整个目录树,从请求的 URL 或文档通过大部份更高级别直到伺服器的根目录,然后为每一请求加载它们。

Nginx 不容许额外的实用性。它的实用性是集中的。你有两个管理整个过程的文档,这使它在这方面快得多,尽管稳定性要低得多。Nginx 的中央实用性不如 Apache 采用的概念灵活,但它提供更多了明显的安全优势:只有获得 root 权限的用户才能更改 Web 伺服器的实用性。

由于 Nginx 中没有目录级别的实用性,因此用户通过将指令写入主实用性文档来执行大部份实用性更改。

全力支持

Apache 和 Nginx 都是文档齐全的网络平台。图书馆员不太可能遇到问题或遇到无法在其文档中找到标准答案的问题。

Apache HTTP 伺服器文档Nginx 文档

在操作系统全力支持方面,Apache 能在 Linux 和 UNIX 等大部份操作系统上运行,并且完全全力支持微软 Windows。Nginx 也能在几个现代的类 Unix 系统上运行,并且全力支持 Windows,但它在 Windows 上的操控性不如在 UNIX 网络平台上稳定。因此,如果你想在微软 Windows 上运行机能丰富的开源 Web 伺服器,Apache 确实是唯一的生产就绪选项。

4、Apache 和 Nginx 一起配合采用

但是,在比较 Apache 和 Nginx 时要记住的一件事是,它并不总是必须是非此即彼的决定。很多图书馆员将二者结合在两个混合解决方案中,充分利用各自的优势。

Apache 和 Nginx 能并排采用来建立工作负载优化的伺服器。你能在 Apache 前面采用 Nginx 作为伺服器代理,它利用 Nginx 的处理速度和处理大网络流量的能力。Nginx 处理和提供更多动态文本,同时将动态文本转发给 Apache(如下图所示)。

Apache 与 Nginx:你应该选择哪个 Web 服务器

Nginx 执行与 HTTP 相关的繁重工作——提供更多动态文档、缓存文本和卸载慢速 HTTP 相连,以便 Apache 伺服器能在安全可靠的环境中运行插件代码。

结论

在 Apache 与 Nginx 的比赛中,在切换伺服器或伺服器应用软件时做出决定可能很困难。确定最适宜你的伺服器很大程度上取决于评估你的某一要求并确定最佳优先选择。Apache 和 Nginx 都是开源的高操控性 Web 伺服器,能够处理各种工作负载以满足现代 Web 需求的需求。

如果你不需要很多 Web 伺服器机能,Nginx 是你的最佳优先选择。此外,在速度和操控性方面,Nginx 也是明显的赢家。它非常适宜高网络流量网站。

Nginx 在很多方面都无法与机能丰富的 Apache 竞争,但它的异步状态和单缓存闪电般的加速构架使其成为超越 Apache 的明智优先选择。

另一方面,Apache 可能是其他情景中首选的 Web 伺服器。Apache 更适宜共享资源代销环境,并且能提供更多两个控制面板,从而更容易进行伺服器端更改。

因此,在 Apache 和 Nginx 之间进行优先选择之前,你需要仔细分析你的需求,你必须希望你的 Web 伺服器服务项目于它们。

PS:防止找不到本篇文章,能收藏点赞,方便翻阅查找哦

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务