为什么为WordPress更适合选择NGiNX而不是Apache?

博主:xiaoweixiaowei 2022-01-17 条评论

您的 WordPress 网站是否获得大量流量?不,我的意思是很多流量……我们谈论的是完全饱和 1Gbps 端口的流量,每月服务数百 TB 的 http 流量,包括大量的动态页面、插件和成千上万的并发用户点击。

现在,如果我告诉你你可以在一个不超过 8GB RAM 的 VPS 上托管一个像上面这样的 Godzilla WordPress 网站怎么办?虽然这对于许多遭受基于 cPanel、Plesk 和 Apache 的托管缓慢的网站管理员来说听起来像是一个梦想 – 想象一下,即使是那些预算有限的人,现在也可以使用它!那是因为我们现在可以使用 NGINX 和 Varnish 智能地工作,而不是努力工作!停止将钱花在硬件上并正确优化您的 WordPress 网站。通过将 NGiNX 和 Varnish 添加到您的 webstack 中,您将能够承受巨大的流量,即使是使用大量插件的 WordPress 网站。无延迟、无停机时间和实时性能。

使用 NGiNX 和 Varnish缓存增强 WordPress 网站的性能

如果您使用正确的工具,在 WordPress 上获得令人窒息的响应时间很容易实现。我们建议使用 CentOS 7 x64 基础构建您的自定义 WordPress 服务器。我们不再像现在几乎每个人都使用 cPanel 和 Apache,而是向 Varnish、NGINX、PHP-FPM 和 PerconaSQL 打招呼。当然,仅仅将一些软件组合在一起并不能使某些东西变得快速或可靠。您需要知道在什么情况下要调整什么,以便构建个性化服务器,准确构建您的 WordPress 网站。值得庆幸的是,有很多关于如何做到这一点的教程。但这篇文章不是其中之一。它更多的是对 WordPress 的 NGiNX/Varnish 网络堆栈、好处以及它的用途的顶级概述。

为什么为WordPress更适合选择NGiNX而不是Apache?

为什么为 WordPress 选择 NGiNX 而不是 Apache?

在传统的托管服务器中,无论是共享的还是专用的,当有人访问您的网站时,Apache 进程都会处理查看者的每一次点击,实时向 MySQL 数据库服务器发送请求。每次点击都会导致针对数据库生成查询,当然,每次点击也会导致您的 WordPress 网站由 Apache 和 PHP 呈现,并发送到您的查看者的浏览器。

当然,也有人会说“APC 可以缓存就好了”,或者“我们使用文件缓存,我们不需要其他任何东西!” – 虽然两者都是可敬的声明,但时代已经改变,缓存不再是应用程序级别的事情。

重型网站必须在外部缓存,这意味着在应用程序本身之外。

Web 应用程序知道缓存是完全可以接受的,以便命中计数器等保持最新,但是实际的“缓存”过程必须在 Web 服务器堆栈之外。我们使用 Varnish,它是一个与“webserver”堆栈完全隔离的独立服务器。它可以将网站完全“缓存”在 RAM 内存中,这样访问者的每次点击都不会导致任何不必要的查询,同时完全符合您对缓存控制的要求。

例如,假设您有一些页面,例如您的主页,您希望缓存 3 分钟,但其他一些页面应该缓存 10 或 15 分钟,这一切都可以使用我们的 Varnish 轻松控制WordPress 插件和 Varnish VCL。进一步增强“外部缓存”的逻辑是,使用 Varnish 缓存您的网站,您可以提供陈旧的内容。这在概念上与 CDN 非常相似。事实上,大多数 CDN 实际上都是由 Varnish 提供支持的。

这是什么意思:

您的网络服务器堆栈可能因多种原因而下降。

  • 也许你有一个 MySQL 数据库崩溃
  • 也许你的脚本中有一个循环
  • 也许你有一个损坏的连接脚本
  • 也许你是甚至丢失了你不小心删除的文件

Varnish 来拯救这里。Varnish 将检测到您的网络服务器堆栈无法运行,并将立即自动开始提供之前在正常运行期间缓存的“陈旧”内容。

你的结果是什么?您的前端访问者在浏览时都不会遇到任何网站错误或“500”消息。

数据库(带有 XtraDB 的 Percona 服务器)

WordPress 是数据库密集型的,即使我们使用 Varnish 缓存您的网站,并且实时处理请求,我们仍然通过将 MySQL 替换为 Percona 来扩展对“基础网络服务器”包的增强。

Percona 在处理 InnoDB 数据库时速度更快,这正是我们在大型安装和/或具有广泛数据库活动的部署中运行 WordPress 数据库的方式,例如,具有 >10K 帖子的新闻门户网站。

网络服务器 (NGINX)

使用 Apache 以这种速度提供流量是可能的,但它需要更多的服务器资源,尤其是 RAM!

这就是为什么对于高流量的 WordPress 网站,我们只将 NGiNX 用于我们的自定义构建网络服务器解决方案。

为什么为WordPress更适合选择NGiNX而不是Apache?

NGINX 由 Igor Sysoev 开发,并且经过多年的托管站点测试,例如 Yandex、VKontakte、Rambler、Mail.ru。

NGINX 与 WordPress 完全兼容,并提供“设置并忘记它”所需的所有功能,而不会遇到停机和延迟。你猜怎么着?WordPress 。com本身,使用 NGINX!

Apache 就像 Microsoft Word,它有一百万个选项,但你只需要六个。Nginx 做了这六件事,其中五件事的速度比 Apache 快 50 倍。
— Chris Lea 谈 nginx 和 WordPress

NGiNX 大放异彩是因为它是一个基于事件的网络服务器,而 Apache 是一个基于进程的服务器。这两个系统之间的差异在任何由繁忙交通承担的负载下都是惊人的。 500 个同时连接可能只会导致 Nginx 使用几兆字节的 RAM,而 Apache 可能会消耗数百兆字节(如果它可以做到的话)。

如果您使用 NGiNX 和 Varnish,WordPress 是否难以管理?

很高兴知道,借助 ISPConfig,可以使用功能齐全的控制面板交付用于 WordPress 的高级 NGiNX webstack。而且它也是免费的,很高兴知道。

这为您提供了您可能已经在 cPanel 中使用的所有功能,例如:

  • 使用指向创建域并单击
  • 创建邮件帐户
  • 重置密码
  • 访问网络邮件
  • 执行域和邮箱的备份
  • 管理子域,
  • 如果需要,请为您的高级客户提供经销商帐户。

为什么为 NGiNX 优化的 WordPress 设置选择托管主机

虽然您可以自己组织所有这些,但我们不建议在关键任务生产网站上进行试验。赌注太高,在高流量的 WordPress 网站上工作时几乎没有出错的余地。

通过选择正确的托管托管服务提供商,您可以获得对整个服务器的全面端到端支持,以及在您的服务器上实施 WordPress,因为它与缓存、数据库、Web 服务器堆栈、电子邮件、备份和 PHP 细节有关。

迁移方案

发现电话

我们通常建议客户通过 Skype 与实施团队进行 30 分钟的初始发现电话,以对您的设置进行迁移前审核。大规模迁移可能很棘手,因此在行动之前花时间观察和计划非常重要。

移民

管理最好的 WordPress 托管服务提供商将确保在迁移过程中,实施专家会调试与网络服务器更改为 NGINX、数据库更改为 InnoDB(如果需要)等相关的所有问题。

验证

完成此过程后,有时会组织 30 分钟的验证会话,以确认网站、数据库、cron 作业、电子邮件、表单、缓存和备份系统的正常运行。

DNS 更改

在验证一切都可以在新设置上完美运行之后,您需要组织 DNS 配置的细节,以便您的网站可以切换到新服务器。

同步

此过程的最后一步通常是同步文件和数据库表,以便在迁移完成后,您不会丢失 WordPress 网站上的任何帖子或评论。

迁移后监控

实施完成后,将在您的服务器和您的应用程序上建立监控。在 EuroVPS,我们结合使用 Paessler PRTG 监控系统来观察服务器的实时状态和 New Relic 来实时监控您网站的状态。

两者一起为您提供服务器内部工作的透明度,您可以放心,您不会因为流量泛滥而在早上醒来停机,因为我们会提前知道何时升级服务器是——基于真实的指标。

总结

在优化 WordPress网站以提高网站速度和应对海啸流量高峰方面,我们拥有丰富的经验。我们以我们的正常运行时间和快速响应速度而自豪,我们的客户服务团队全天候为您节省时间,让您可以专注于生活中的重要事情。

The End

发布于:2022-01-17,除非注明,否则均为 主机评测原创文章,转载请注明出处。