哪个在 Ubuntu Server 12.04 32 位、Apache 或 Nginx 上更快地解释 PHP?

clo*_*rks 6 php apache2 nginx

我目前已经在我的 12.04 32 位 Ubuntu 服务器上安装了 Apache,但我有兴趣切换到 Nginx。我已经阅读了许多比较和评论,其中 Nginx 比 Apache 提供静态内容的速度更快,但这些都没有涵盖 PHP 性能。

这是我的问题:在 PHP 处理性能方面,Nginx 与 Apache 相比如何?对于 PHP,Nginx 是否也更快?

Mit*_*tch 10

这是 Apache 和 Nginx 之间的比较,列出了一些优点和缺点。

相比之下,Apache 通过分离更多进程来处理大量请求来处理它们,这样做通常会消耗大量 RAM。有时 Apache 会对其就餐的大小感到有些焦虑。Apache 可从 Ubuntu 软件包存储库中使用快速sudo apt-get install apache2.

  • Apache 是当今最成熟的 Web 服务器,并且比任何其他服务器都支持更多的 Web 站点。
  • Apache 是一个成熟的、灵活的 Web 服务器,许多企业级客户依赖它来提供动态和静态内容。
  • Apache 可以在一系列操作系统上运行,维护良好,其无处不在意味着存在大量用户生成的文档。
  • Apache 在高服务器负载下消耗更多内存,这会导致性能下降。
  • 由于它的健壮性,Apache 也有大小,这会导致更多的内存消耗。

Nginx(发音为“engine-ex”)是一个轻量级的 Web 服务器,以速度、速度、速度着称。它在根本上与 Apache 不同——Apache 是一个进程和线程驱动的应用程序,而 Nginx 是事件驱动的。这种设计差异的实际效果是,少量的 Nginx “worker”进程可以在不相互等待和不同步的情况下处理大量请求;他们只是“闭上眼睛”,尽可能快地吃掉众所周知的大象,一次一口。

  • Nginx 被设计为简单和轻量级,并且比其他 Web 服务器需要更少的硬件资源。它部分通过使用基于事件的处理模型来实现这一点,该模型通常需要比基于进程的服务器使用的内存更少的内存。
  • Nginx 在服务静态网页方面速度很快。
  • Nginx 更新,与更成熟的 Web 服务器相比,它的文档和支持较少。
  • 轻量级设计也意味着定制可能更加困难,这对于大型或复杂的配置可能是必要的。

Chris Lea 关于为什么使用 Nginx?page:“Apache 就像 Microsoft Word,它有一百万个选项,但你只需要六个。Nginx 做这六件事,其中五件事比 Apache 快 50 倍。”

当你比较 Nginx 和 Apache 时,两者都是开源软件,并且两个阵营都有一个声音倡导者社区。Nginx 可以从 Ubuntu 软件包存储库中获得,并带有一个快速的sudo apt-get install Nginx.

最后,Nginx 和 Apache Web 服务器都是可靠的解决方案,尽管它们在特定情况下各有优势。Nginx 的主要优势包括快速提供静态网页,以及内存和硬件资源的低消耗。Apache 是公认的多功能主力,具有丰富的模块可用性和文档。根据您的业务需求和技术要求,其中一种或什至两者的组合可能适合您。

希望这会有所帮助。

资料来源:Lee Hutchinson & Lukasz Kujawa


Liv*_*eBT 6

使用 PHP-FPM 的 Nginx 通常比使用 的 Apache 快mod_php,但由此产生的性能改进取决于您部署解决方案或 Web 应用程序的环境(PHP 代码复杂性、用户/负载、硬件等)。

我们需要更深入地研究网络服务器,以了解为什么没有对网络服务器的 PHP 性能进行简单的比较。

Nginx 中的 PHP 支持

Apache 用于mod_php解释 PHP 代码。Lighttpd早期是 Nginx 的竞争对手,它使用自己的spawn_fcgi(另一个FastCGI实现)来提高速度,从而能够以与 Apache 相同或更少的资源为更多用户提供服务。从而获得人气。

Nginx 与 Lighttpd 有点不同。截至今天,Nginx 支持许多功能,也可以配置为运行spawn_fcgi,但它从来没有像 Lighttpd 那样紧密地捆绑在一起。这让我们重新考虑 PHP 对网络服务器的支持,并可能导致FastCGI 进程管理器项目(PHP-FPM)。

php-fpm自 12.04 起,PHP-FPM 可通过软件包在 Ubuntu 中使用。Ubuntu 包是预先配置的,但值得阅读如何根据您的需要微调池参数(影响:代码的复杂性、可用的 RAM 和 CPU 处理能力、执行时间)。还有一些可用的指南解释了如何为不同的应用程序设置专用池,不仅可以提高性能,还可以提高安全性。如果您关心性能,则应该花时间了解新服务器堆栈的主要组件。

配置 Nginx

请阅读英文项目 wiki 中的 Nginx 文档。我发现它对理解 Apache 是如何配置的、为什么 Nginx 做不同的事情(例如if是邪恶的)以及如何使用 Nginx 实现速度改进非常有帮助。

如果您用 Nginx 替换 Apache 并尝试以与 Apache 相同的方式对其进行配置,则根本无法提高速度,或者您的配置将无法正常工作。

Nginx 基本上旨在降低复杂性,同时仍然提供广泛的功能集。

谁说你不能在 Nginx 后面运行 Apache?


mes*_*azs 3

通常,当静态内容较多且用户请求数量较多时,nginx 速度更快。如果您有一个小型网站,那么选择网络服务器实际上取决于您的喜好。但要回答这个问题本身,PHP 处理本身的差异应该可以忽略不计。


Gau*_*rma 0

您可以使用 nginx ,与 Apache2 相比,它非常快,具有静态和动态机器人,响应时间也比其他机器人快。

它也可以与 php 、rails 和其他脚本语言配合良好。