服务器端对决:Apache vs NGINX

Web服务器是Internet的核心。 没有网络服务器软件如 阿帕奇 和NGINX,网络将不像我们今天看到的那样。 但是,它们不可互换。 要了解这两种选择中的哪一种(Apache vs NGINX)最适合您,您需要了解它们的工作方式。

在本文中,我们将讨论什么是Web服务器以及它们如何工作,并介绍Apache和NGINX。 然后,我们将在关键差异方面比较Apache与NGINX,并讨论它们的优缺点。

让我们开始吧!

什么是Web服务器?

简而言之,Web服务器是专门用于运行服务器软件(例如Apache或NGINX)的计算机。 Web服务器既存储站点文件,也可以处理传入的请求以访问它们。

最后一个任务是Web服务器软件,这是一项重要的职责。 对于流行的网站,您使用的软件可能需要在较短的时间内处理大量的请求,因此必须由任务来决定。 NGINX和Apache都能够扩展和处理大量请求。 但是,两个服务器选项的工作方式在核心级别上是不同的。

Web服务器软件与其他几个组件协同工作,可为现代网站和应用程序提供服务。 例如,要在服务器上设置WordPress,您需要以下组件:

  • 具有HTTPS支持的Web服务器:可以是Apache,NGINX或其他一些选项。
  • PHP:WordPress建立在 PHP语言,因此您需要它来运行内容管理系统(CMS)。
  • 数据库软件:可以是MySQL或MariaDB。

对于本文,我们将仅专注于Web服务器软件。 但是,了解软件不能在真空中运行非常重要。 在某些情况下,您甚至可以将Web服务器(例如Apache和NGINX)配置为可以协同工作。 网站可以做到这一点的一种方法是配置NGINX以使其正常工作 作为反向代理 同时使用Apache作为主要服务器软件。 您可以随意使用的应用程序多种多样。

Apache简介

服务器端对决-apache-vs-nginx-1服务器端对决:Apache vs NGINX

需很长时间, 阿帕奇 是大多数网站的默认Web服务器选项。 自1995年Robert McCool推出Apache HTTP Server以来,该软件就已经存在。 几年后,Apache Software Foundation接管了维护工作,Apache成为开源软件。

Apache受到了广泛的欢迎,因为它与几个主要的Linux发行版一起安装。 当谈到Web服务器时,Linux的盛行使Apache成为事实上的多年选择。

Apache名称在Linux中根深蒂固,以至于操作系统(OS)将httpd命令用于其服务器进程(在Apache本身中找到的东西)。 但是,就网络服务器而言,Apache并不是唯一的大牌。

NGINX简介

服务器端对决-apache-vs-nginx-2服务器端对决:Apache vs NGINX

NGINX 由Igor Sysoev设计,能够处理所谓的 “ C10K问题”。 这涉及优化网络以能够处理多达1万个并发连接。 换句话说,NGINX的创建考虑了最大的可扩展性。

该开源软件于2004年发布,现在有两种许可证类型可用。 您拥有开源版本,并且 NGINX Plus,这是一个包含专业支持和其他功能的企业解决方案。

刚起步时,由于与Apache相比安装困难,因此大多数网站都使用NGINX仅处理静态请求。 多年来,NGINX的市场份额一直稳定增长。

根据一些调查, NGINX已通过Apache 作为世界上最受欢迎的Web服务器软件。 其他数字使Apache紧随其后:

服务器端对决-apache-vs-nginx-3服务器端对决:Apache vs NGINX

图片来源: W3Techs

确实,NGINX在网络上最受欢迎的网站中比Apache受欢迎得多。 这是因为NGINX在可伸缩性方面具有不可否认的优势,这对于获得大量流量的站点而言至关重要。

另外,NGINX可以拉“双重责任” 作为反向代理 要么 负载均衡器,如果您不想将其用作网络服务器。 换句话说,它可以完成比Apache更多的角色。

但是,这并不是说如果要考虑更改服务器,NGINX应该是您的默认选择。 在接下来的几节中,我们将分解使每种软件独特的原因。

Apache vs NGINX:3个主要区别

在讨论哪种服务器解决方案是最适合您的解决方案之前,我们需要分解一下使它们与众不同的原因。 让我们从谈论Apache与NGINX的请求处理开始。

1.请求管理

警告-这是事情变得更加技术化的地方。 Apache使用它所说的 多处理模块(MPM) 处理连接。 该软件使您可以在三种类型的MPM之间进行选择:

  1. mpm-prefork:此模块创建单线程进程来处理每个请求。 反过来,每个“孩子”只能处理一个连接。
  2. mpm_worker:此模块可以启动多线程进程,每个线程能够管理一个连接。
  3. mpm_event:在大多数情况下,此模块的工作方式与mpm_worker相同,但已进行了优化以使连接保持活动状态。

Apache的一个独特方面是,它使您能够选择要使用的模块,并根据需要交换它们。 默认情况下,Apache使用mpm-prefork模块,该模块非常适合少量的并发连接。 在扩展方面,mpm_worker模块更好,但它需要其他服务器资源。

相反,NGINX使用所谓的“事件驱动”方法。 该软件使用多线程进程,每个线程都能够处理多个连接。

而且,NGINX异步处理传入的请求。 简而言之,这意味着NGINX可以使用更少的服务器资源来管理更多的请求,从而使其在此特定方面更加高效。

2.服务器配置

Apache使用.htaccess文件设置有关如何处理传入请求的特定规则。 这些文件包括从重定向规则到内存限制等所有内容。

使用Apache,您可以为服务器树中的每个目录设置单独的.htaccess文件。 举个例子,如果您设置共享服务器,则可以使托管在其上的每个网站都可以设置自己的.htaccess文件。

这种高度灵活性的缺点是,沿着请求路径运行的每个.htaccess文件都需要分别进行解释。 这意味着请求可能需要更长的时间才能执行。

在配置方面,NGINX无法为您提供相同级别的灵活性。 您可以使用一个主文件来管理整个事情,而不是直接级别的配置文件。

3.模块

模块是附件,您可以将其与所选服务器软件一起使用以扩展其默认功能。 考虑到Apache的时代和受欢迎程度,在模块选择方面它比NGINX更具优势也就不足为奇了。

Apache不仅提供了更多的模块,而且往往更容易找到有关如何使用它们的文档和教程。 此外,Apache使您可以随意安装,启用和禁用模块,从而为您提供高度的灵活性。

NGINX没有提供相同的优势。 要使用模块,您需要将它们编译到NGINX内核中。 而且,模块一旦编译就不能禁用,这使得交换选项变得更加困难。

请务必注意,NGINX Plus确实包含动态模块功能,使您可以随意禁用和启用模块。 但是,即使使用Plus,在使用它们之前,仍需要使用NGINX内核编译这些模块。

尽管NGINX的模块库和文档正在以稳定的速度增长,但是就数量而言,它们仍然无法与Apache相提并论。 考虑到NGINX如何继续获得更多的市场份额,这可能会在不久的将来改变。

Apache vs NGINX的优缺点

到目前为止,您已经了解了Apache和NGINX之间的核心区别。 现在,让我们简要介绍每种软件的优缺点。

阿帕奇

首先,让我们谈谈使用Apache的主要好处:

  • 设置和配置更加容易
  • 借助.htaccess文件,您可以更精细地控制服务器的配置
  • 模块选择更好,您可以随意启用和禁用模块
  • 您可以决定如何使用不同的模块处理请求

使用Apache vs NGINX的主要缺点是后者的扩展性更好。 如果您仍处于网站的成长阶段,那么Apache应该足以应付流量。

但是,如果您的站点取得了巨大成功,则有时可能需要考虑更新服务器堆栈。 这可能意味着切换到NGINX或将其用作Apache Web服务器的反向代理。

NGINX

就Apache而言,NGINX具有两个明显的优势-性能和可伸缩性。 更具体地说,NGINX在以下方面更好:

  • 处理大量并发请求
  • 用更少的硬件资源获得更好的性能
  • 更快地提供静态内容

最后一部分是为什么这么多人选择使用NGINX作为反向代理解决方案的原因。 尽管NGINX具有与性能相关的所有优点,但它并非没有缺陷。

尽管只有一个配置文件可以减少请求时间,但这也意味着NGINX的灵活性不如Apache。 这也适用于模块,因为NGINX的开源版本会迫使您编译模块以使用它们-并且您不能禁用它们。 实际上,这意味着要设置NGINX以使其按需工作可能比使用Apache复杂得多。

使用NGINX的主要原因是性能是否是您最关心的问题。 在某些时候,流行的网站需要掏出大笔钱来处理大量流量,而不会造成停机时间,加载时间长等问题。 而且,由于NGINX可以使您以较少的硬件资源获得更好的性能结果,因此它可以是一种更具成本效益的选择。

结论

切换服务器或服务器软件始终是一个重大决定。 因此,理想情况下,您将希望长期使用将要坚持使用的服务器解决方案。

在之间选择 阿帕奇NGINX 看起来不那么清晰。 在许多情况下,此决定将取决于您,因为 您的虚拟主机 将决定使用什么软件。 在实际的水平上,您需要进行研究,并找出Web主机使用的选项,然后再提交给他们。

您对如何在Apache和NGINX之间进行选择有任何疑问吗? 让我们在下面的评论部分中讨论它们!

ProStockStudio / shutterstock.com的文章缩略图

资源

相关文章