扩大 WordPress 网站以实现高流量的 11 种有效方法
已发表: 2020-02-08缓慢的网站或超时的服务器不适合企业任何业务和品牌声誉。 这种停机时间会对盈利能力或信任产生不利影响。 网站必须能够预测并准备迎接新的流量,以便它们是主动的而不是被动的。 这仅仅是因为您永远不知道什么可能会触发暂时的流量高峰。 例如,如果您经营一个博客,它可能是一篇病毒式的帖子。 由于大多数互联网用户不耐烦,因此只需几秒钟的停机时间就可能导致数千美元的损失。 也就是说,WordPress 能够很好地管理大量流量,尽管许多突发事件、配置和设置必须是有意的。 让我们来看看,好吗?

- WordPress 不处理流量。 主机(托管公司)做!
作为一个网站引擎,WordPress 本身并不主要负责处理您潜在的高流量。 流量处理能力主要取决于您的托管平台。 不幸的是,托管您的 WordPress 网站的虚拟机可能会出现单点故障,因为单个实例的问题可能会导致您的网站失去服务。 事实上,一些托管服务器会限制您的流量阈值,而另一些托管服务器会在您的流量增加超过某个阈值时要求您升级帐户。 那么,我们的托管服务提供商清单上应该有哪些基础知识:
- 首先,确保您的提供商能够毫不费力地适应最新的 WordPress 版本。
- 其次,检查它们是否允许您超出上限(当您开始获得更多流量时,您的站点的传输速度限制和带宽)
- 虽然在开始进行低流量项目时共享网络托管可能很棒,但一旦您开始使用,您将需要转移到虚拟专用服务器 (VPS)。 您的提供商应该有 VPS 的规定。
- 分层计划应允许垂直扩展,以便客户可以根据需求的变化轻松升级。 扩展资源以提高性能主要可以通过垂直扩展来实现。 本质上,通过增加运行 WordPress 网站的虚拟机的大小。
- 检查水平缩放是否也可用,因为它将您的网站分成不同的层。 比如前端服务器、数据库服务器、代理层、镜像层分离,更容易扩展资源。

快速提示:如果可以,请避免在您的高性能 WordPress 服务器上部署 cPanel/WHM(WebHost Manager),因为它会减慢您的高流量网站。
- 在您的网站上使用Elasticsearch
特别是 MySQL 和 MariaDB 的搜索能力并不出名。 他们也没有考虑到这种优势,这也是 WordPress 团队无法改进搜索逻辑的原因之一。 ElasticSearch 用 Java 编写,是一种分布式、快速、RESTful 搜索引擎软件,用于搜索和分析。 尽管如此,可以利用 Elasticsearch 来加快对 WordPress 数据库的查询。 具体来说,通过建立站点数据库内容的索引,ElasticSearch 可用于搜索此索引,比执行相同搜索时的 MySQL 查询要快得多。 也可以通过安装 ElasticPress 插件来集成 Elasticsearch,以使用 Elasticsearch 而不是 MySQL 生成查询结果。 这可以提高性能并让您更好地处理高流量。
- 更少的图形和更优化的媒体
为防止网站在流量高峰期间出现故障,您可以减少网站设计中的图形数量。 理想情况下,优化媒体的偶然性应该有助于使您的网站更轻、加载更快。 在高流量期间,获得最佳的页面速度性能可能是一个很好的安全网。 我想到了三种基本做法。
- 您可以将压缩插件用于图像和延迟加载,因为它只会在访问者到达您网页的这些部分时才向访问者提供图像,而不是更早。
- 如果可以,请始终确保将网站上的媒体限制为仅包含基本图像。
- 此外,将来自 YouTube 和 Vimeo 等服务的视频嵌入您的网站! 然后在您的网站上上传完整的视频。
阅读更多:提高 WordPress 网站速度的提示
- 更少的插件
到目前为止,我们的主题似乎是“少即是多”。 但不要担心,我们仍然有一些很棒的提示! 理想情况下,WordPress 插件是由您安装的 WordPress 主题“调用”的文件。 插件可以轻松扩展功能或向 Web 系统添加新功能。 但是,即使在不需要时,编码不佳的插件也会经常加载过多的内容。
从技术上讲,没有主题或插件的裸实例在负载下可能会表现得很好。 但是谁想要一个裸体主题? 此外,大多数插件可能过于复杂和臃肿。 这会提高页面加载速度,从而减慢您的网站速度。 因此,请务必避免使用插件使您的站点超载,以避免您的主题对数据库进行过多查询,这可能导致服务器上的活动增加,从而导致潜在的服务器故障。 关键点:
- 删除未使用的插件
- 关闭不需要的插件。
- 使用必要的插件。 避免不必要的或实验性的。
- 定期审核您的插件,以评估它们的大小和质量等。
阅读更多:WordPress 插件可以安全使用吗?
- 利用内容交付网络
在不同的地理位置托管一个网络系统并不像听起来那么简单。 根据访问者的地理位置,网络系统可能会遇到不同的加载速度。 在这种情况下,CDN 被证明是非常有帮助的。 CDN 将您网站资源的缓存版本存储在世界不同地区的各种服务器上。 这有助于最大限度地提高服务器的性能,确保不会发生流量超载。 使用 CDN 可以为世界各地的访问者降低您网站的加载速度。
阅读更多:将您的 WordPress 网站迁移到云平台
CDN 通过缓存图像、JavaScript 和 CSS 文件等静态内容来增强服务器的功能。 因此,当访问者访问您的网站时,他们会从离他们最近的服务器获得服务,从而加快您网站的加载速度。 CDN 有助于避免服务器以高流量加载,因为网站文件分布并保存到全球多个不同的数据位置。 总结一下CDN的优势:
- 网站速度增加——加载速度更快。
- 允许您在托管服务提供商和 CDN 平台之间共享负载时处理更多流量。
- CDN 有助于节省您网站的带宽。
- CDN 有助于保护您的网站免受拒绝服务 (DDOS) 攻击,因为多个请求将在多个服务器之间共享。
最受欢迎的“免费”CDN 替代品是 Cloudfare,您可以在 WP 网站上使用它。 Cloudflare 免费 CDN 非常棒,原因如下:
- 不收取带宽费用:与大多数 CDN 服务不同,Cloudflare 不会向您收取流量费用。 大多数 CDN 可以向您收取从其 CDN 中清除缓存内容的费用。
- 全球覆盖: Cloudfare 在全球拥有 100 多个数据中心,在多个交换点运营,因此它始终靠近您的客户。
- 安全性:他们被认为是一个安全组织,他们的“CDN”本质上是一个分布式反向代理。 因此,将安全专家添加到他们的菜单中。

- 考虑使用无状态 Web 层
本质上,无状态应用程序不需要先前交互的知识,并且基本上不存储会话信息。 回想起来,无状态应用程序可以水平扩展,因为任何请求都可以由任何可用的计算资源(基本上是 Web 服务器实例)提供服务。 因此,当不再需要该容量时,可以安全地终止任何单个资源。 例如,在运行任务已经耗尽或达到其目的之后。 在无状态 Web 层中,资源不需要知道其对等点的存在,所需要的只是一种将工作负载分配给它们的方法。 您可以应用无状态架构来处理潜在的预期高流量。

- 数据库缓存和优化
数据库缓存很重要,因为它将减少数据库调用并加快 Web 系统的加载时间。 当从缓存中提供大多数查询时,需要访问数据库的查询数量会减少。 这会提高数据库性能。 提高数据库效率的另一种方法是限制自动加载查询并将经常访问的数据块存储在内存中以实现低延迟访问。 尽管使用查询缓存和适当的索引来提高数据库性能很重要,但它可以减少延迟并增加读取繁重的应用程序工作负载的吞吐量。
使用一段时间后,数据库将包含更多您不再需要的信息。 这将降低系统的性能和效率。 修订是导致在数据库中创建不必要信息的原因之一。 修订是 WordPress 的一项功能,可让您自动保存页面、帖子或自定义帖子类型的修订。 默认情况下,它会在每 60 秒后自动保存您的工作。 可以通过在“wp-config.php”文件中定义“WP_POST_REVISIONS”来管理这些自动保存间隔。 您可以每 30 秒、2 分钟或根据您的要求保存修订。 也可以完全关闭修订。 您还应该知道,关闭修订不会提高网站的性能。
要摆脱所有这些不必要的数据,您需要优化数据库。 WordPress 主要使用 MariaDB 或 MySQL 数据库。 因此,通过优化 MySQL/MariaDB 设置或通过提供更多内存和处理能力,过度工作的服务器可以提供帮助。 此外,WordPress 中提供了各种插件,可让您清理数据库。 这些插件可帮助您删除未使用的标签、修订、已删除的帖子等,并将优化您的数据库。
- 使用正确的缓存插件
遇到停机时,缓存插件可以生成您网站的 HTML 文件,这在流量增加时很有用。 选择缓存插件时,请注意以下方面:
- 更新可用性
- 内容交付网络和 SSL 集成
- 页面缓存能力
- 数据库缓存优势
尽管我个人的推荐是 W3TC 缓存插件,但您的缓存插件应该提供 CDN 集成。
- 确保站点安全
安全性会影响 WordPress 网站的扩展,因为高流量意味着需要注意更多潜在威胁。 因此,专业的安全插件可以保护您的网站免受恶意软件、SQL 注入、垃圾邮件、DDoS 攻击等,只需提供以下内容:
- 主动安全监控
- 蛮力攻击保护
- 恶意软件扫描
- 安全监控和管理(尤其是针对 DDoS),
- 黑名单监控
- 安全强化和黑客攻击后操作
- 防火墙
此外,您可以采取个人突发事件,例如:
- 使用 2 因素身份验证加强您的 wp-admin 密码
- 限制您网站上的登录尝试
- 将防病毒软件应用到您的网络 使用 SFTP 而不是 FTP
- 隐藏 wp-config.php 和 .htaccess 文件
- 不使用您控制的网络时,请使用 VPN 虚拟专用网络。
- 使用 VPS 虚拟专用服务器可以更好地控制您的服务器环境。
- 利用字节码缓存
PHP 脚本在每次执行时都会被解析和编译。 所以理想情况下,通过使用 PHP 字节码缓存,PHP 编译的输出存储在 RAM 中,避免了同一个脚本不得不一次又一次地编译。 因此,这减少了与执行 PHP 脚本相关的开销,从而提高了性能并降低了 CPU 要求。 OPcache 可以帮助进行字节码缓存。
- 应用负载平衡技术
负载平衡有效地将传入的网络流量分布在一组后端服务器、服务器池或服务器场中。 由于高流量网站服务于成千上万的用户,并发请求是不可避免的,因此为了经济高效地扩展,建议使用负载平衡。 理想情况下,使用负载均衡器,如果单个服务器出现故障,它会将流量重定向到剩余的在线服务器。 负载均衡器执行以下职责:
- 它在多个服务器之间有效地分配网络负载或客户端请求。
- 它仅通过向在线服务器发送请求来确保高可靠性和可用性。
- 它提供了根据需求添加或减少服务器的灵活性。

为了演示负载平衡,我们可以使用wordpress.com (不是 wordpress.org)的示例,它实际上是一个 WordPress 多站点安装,在多个数据中心的数千台服务器上运行。 特别是,作为站点构建器的 WordPress.com 通过其 HyperDB 托管多个站点 负载平衡并将其数百万个表分布在独立的数据库实例中,所有这些都链接到一个中央数据库。 这就是为什么 wordpress.com 网站可以在将最终用户请求分发到多个 Web 服务器节点时无缝处理高流量的原因,本质上是负载平衡。
自托管的 WordPress 网站可以同时处理 10 万访问者吗?
当天的问题,对吧? 从理论上讲,是的,尽管要实现这一结果需要付出很多努力。 您需要进行现场审核,并且肯定会涉及:
- 负载均衡
- MySQL 复制
- 静态内容卸载
- 服务器架构的弹性。
- 著名的 CDN 提供商
- 高效的评论管理系统,例如 Disqus
- 最大化缓存效率
- 利用弹性云部署
- 经常利用分析和跟踪工具,例如 WordPress Stats 和 Google Analytics
- 利用高性能 HTTP服务器,例如 NGINX 。
至少可以说,很大程度上取决于硬件和您使用的插件类型。 您可以考虑为媒体和上传使用单独的云存储,然后使用插件将用户的上传定向到存储而不是本地文件系统。 或者,如果您使用 AWS 实例,请考虑跨区域内的多个可用区构建您的站点,以提高整体架构的可靠性。 此外,使用 SSD 驱动器并避免使用 HDD,因为固态驱动器比 HDD 同类产品更可靠、更安全、更快速。
结论
总之,如果您的服务器运行缓慢、拥挤、共享或设置不当,优化的媒体、脚本和缓存将不会真正发挥作用。 因此,我建议您使用 NGINX 服务器,因为它更注重性能。 此外,请确保使用 CDN 缓存,如果可以的话,您应该使用 Cloudflare 以提高性能,因为它会减少服务器上的资源使用,例如带宽。 值得注意的提及包括定期更新您的 WP 版本和主题。 如有任何其他信息和疑问,请随时与我们联系。