在Apache和NGINX之间进行选择,以满足您的Web托管需求

要开始一个全新的Web项目,您实际上只需要两件事:托管提供程序和HTTP(超文本传输​​协议)服务器。像Amazon Web Services和Microsoft Azure这样的云提供商提供了多种平台选项,可以满足您站点的大小和速度要求。与云主机签署协议后,您可以选择要在虚拟化硬件上运行的HTTP服务器.


HTTP服务器负责接受您网站访问者的Web请求,然后以适当的内容响应他们的浏览器。例如,基本的Web请求可能会要求提供HTML文本内容和一系列链接的图像。 HTTP服务器将提供网络响应,例如Google Chrome或Mozilla Firefox的浏览器可以理解和显示.

在HTTP服务器方面,两种解决方案在当前的大多数情况下处于主导地位:Apace和NGINX(发音为“ Engine X”)。继续阅读以了解两者的基础知识以及它们如何在体系结构,性能和其他类别上相互比较.

Apache基础

自1990年代中期以来,Apache Web服务器解决方案就已经问世。考虑到该软件的使用寿命和稳定性,它仍然是托管网站的最受欢迎的选择之一。它是LAMP开发堆栈的关键部分,各种规模的团队都使用它来在Internet上部署动态应用程序。 LAMP堆栈的其他元素是Linux(操作系统),MySQL(数据库)和PHP(服务器端脚本).

Apache作为免费的开源软件包提供。它由Apache Software Foundation管理和开发。 1990年代,当互联网出现时,Apache是​​大多数网站的默认服务器解决方案。它在设计时考虑了简单性,尽管它确实允许灵活性和可伸缩性,但是在互联网流量水平远低于当今水平的时代,Apache获得了普及。.

NGINX基础

NGINX Web服务器解决方案于2002年首次发布。它由俄罗斯的一位系统管理员创建,并于两年后成为开源社区的一部分。 NGINX背后的设计专门针对速度和性能,这是有人认为Apache缺少的两个领域。实际上,NGINX项目最初是由于C10K公开挑战而产生的,该挑战要求开发人员设计一个HTTP解决方案,以稳定的性能水平处理10,000个并发用户。.

在过去的十年中,NGINX越来越受欢迎,尤其是在那些需要快速增长其硬件的初创公司中。但是,通常认为NGINX比Apache难设置和集成.

架构注意事项

Apache软件包包括一组多处理模块(称为MPM),允许服务器管理员确定其HTTP解决方案应如何处理请求。这种架构允许极大的灵活性和定制性.

最基本的Apache模块是mpm_prefork。它以单线程逻辑操作,其中每个服务器进程一次处理一个Web请求。对于基于PHP脚本语言的Web项目,这是推荐的模块。另一个Apache模块是mpm_worker,它同时支持多个线程。这将帮助Apache更加高效和可扩展。最后一个主要的Apache模块mpm_event与mpm_worker的运行方式类似,但是增加了对保持连接的更好支持,这是许多现代Web应用程序所必需的.

NGINX在架构方面绝对有别于Apache。它基于事件驱动操作的概念,而不是使用进程或线程。这意味着单个NGINX工作者可以同时处理数千个HTTP连接.

NGINX依赖于循环系统,该系统可使工作人员每次触发事件时都能快速接收新请求。事件是异步处理的,这意味着它们不必等待顺序分配其他事件.

内容处理

如今,Web内容分为两类之一:静态或动态。静态内容包括无论网站如何使用都保持一致的网页上的任何内容。例如,网站顶部的公司徽标是静态内容。另一方面,动态内容受PHP等脚本语言控制,并且会根据用户的会话或其他变量而变化。电子邮件站点,银行站点和社交网络都依靠动态内容来向用户显示其个人数据.

Apache只能在单线程基础上提供静态内容,这使得NGINX成为需要快速交付大量静态内容的Web项目的更具吸引力的解决方案。但是,在动态内容方面,Apache确实提供了一些好处。它可以轻松地与PHP集成,并且可以将脚本处理器直接嵌入到HTTP worker中。基本的NGINX软件包不包括对动态内容交付的支持,因此您需要在软件堆栈中添加一个外部处理器以对其进行支持。.

性能比较

您网站的外部访问者将不在乎您在后端使用哪种HTTP服务器。他们只关心快速可靠地访问您的内容。因此,在评估Apache和NGINX作为网络托管选项时,性能应该是要考虑的关键指标.

由于其事件驱动的体系结构,NGINX通常被认为是最快的HTTP解决方案。即使您的网络流量随着时间增长,它也可以使用最少的资源运行。这导致内存和CPU使用率较低,而Apache在负载增加时可能需要更多的硬件利用率.

易于实施

当作为LAMP软件堆栈的一部分安装在Web服务器上时,Apache HTTP主机的配置和运行非常简单。大多数管理员根本不需要修改多处理模块设置。大多数Apache自定义将发生在目录级别的.htaccess文件中.

这些小的文本项使您可以编写HTTP服务器应如何处理某些类型的请求的规则和说明。例如,您可以打开URL重写,以便您域中的特定网址将从另一个位置加载资源。这通常用在URL末尾出现“ /用户名”的社交媒体网站上.

NGINX在目录级别不支持.htaccess文件或其他配置。这使请求处理更快,更安全,但是仍然限制了系统管理员的控制权.

兼容性与支持

HTTP服务器通常在基于UNIX的操作系统上运行,尤其是在开源Linux平台上。这是出于速度的考虑,因为UNIX被认为是可用的最高效的操作系统。 Apache和NGINX均可安装在流行的Linux发行版(如Ubuntu或BSD)上.

Apache还为Microsoft Windows Server操作系统提供全面支持。 NGINX也可以配置为在Windows上运行,但通常认为不稳定。如果您的组织仅在其Web服务器上运行Windows,那么Apache将是明智的选择.

Apache具有强大的在线文档门户,其中包含发行说明,参考手册,用户指南和教程,可帮助您在云环境中安装Apache并将其用于Web应用程序。 NGINX提供了类似类型的文档存储库,涵盖了基本配置以及更详细的开发指南.

摘要

在当今的现代云计算世界中,Apache和NGINX都是非常流行的HTTP服务器解决方案。加拿大大多数最佳托管公司都使用Apache和NGINX.

明智的选择是将任何一个插入开发堆栈,因为它们将提供稳定的性能和可靠性。.

如果速度是您的重中之重,并且您的网站将托管大量静态内容,则NGINX可能是最佳选择。在正在构建具有大量相互交互的子系统的微服务架构的开发团队中,它也成为首选。另一方面,小型开发人员或新手最好还是坚持使用Apache,因为它更易于设置并预先配置了LAMP等第三方软件堆栈.

要记住的一件事是,您不一定需要在Apache和NGINX之间进行选择,而忽略另一项。实际上,这两种解决方案经常串联使用,以提供最佳的虚拟主机体验。通过将NGINX设置为您的初始Web代理,可以快速处理请求并将其发送到应用程序端的Apache worker。从那里,Apache可以与PHP或另一种脚本语言集成以准备Web响应并将其循环回到NGINX层。.

选择HTTP服务器解决方案时,请务必进行研究。您选择的系统将成为您网站或应用程序骨干的一部分,并且对用户的日常体验至关重要.

你也许也喜欢:

  • 最佳网络托管
  • 最佳网站建设者

参考资料和图片来源:

  • Nginx.com
  • ESDS.co.in
  • TutorialsPoint.com
  • 南大教育网
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map