优化WordPress和服务器以尽可能高效地运行 译文

优化

无论您是在低成本共享主机上运行高流量WordPress安装还是小型博客,都应优化WordPress和服务器以尽可能高效地运行。本文通过特定的推荐方法提供了WordPress优化的广泛概述。但是,这并不是每个方面的详细技术解释。

如果你现在需要快速修复,直接进入缓存部分,那么你将获得最大的麻烦。如果您想立即开始更全面的优化过程,请转到如何在WordPress中提高性能

关于绩效主题的广泛概述包含在下面的“影响绩效如何衡量绩效”中。这里讨论的许多技术也适用于WordPress Multisite(MU)。

绩效因素

有几个因素会影响您的WordPress博客(或网站)的性能。这些因素包括但不限于托管环境WordPress配置软件版本,图形数量及其大小

本文将介绍大多数性能降级因素。

主机

您可以使用的优化技术取决于您的托管设置。

共享主机

这是最常见的托管类型。您的网站将与许多其他网站一起托管在服务器上。托管公司为您管理Web服务器,因此您几乎无法控制服务器设置等。

与此类托管最相关的区域是:缓存WordPress性能内容卸载

虚拟主机和专用服务器

在此托管方案中,您可以控制自己的服务器。服务器可能是专用硬件,也可能是共享相同物理硬件的众多虚拟服务器之一。

关键是,您可以控制服务器设置。除了上面的区域(缓存和WordPress性能,这里感兴趣的关键领域是:服务器优化和内容卸载

服务器数量

在处理非常高的流量情况时,可能需要使用多个服务器。如果你达到这个水平,你应该已经使用了上面列出的所有适用技术。

WordPress数据库可以轻松地移动到不同的服务器,只需要对配置文件进行少量更改。同样,图像和其他静态文件可以移动到备用服务器(请参阅内容卸载)。

亚马逊的Elastic Load Balancer可以帮助在多个Web服务器之间传播流量,但需要更高水平的专业知识。如果您使用多个数据库服务器,则HyperDB类可以替代标准WPDB类,并且可以处理复制和分区结构中的多个数据库服务器。

硬件性能

您的硬件功能将对您的网站性能产生巨大影响。处理器数量,处理器速度,可用内存和磁盘空间量以及磁盘存储介质是重要因素。托管服务提供商通常以更高的价格提供更高的性能。

地理距离

服务器与网站访问者之间的距离也会对性能产生影响。内容分发网络或CDN可以跨不同地理区域镜像静态文件(如图像),以便所有站点访问者都具有最佳性能。

服务器负载

服务器上的流量以及配置如何处理负载也会产生巨大影响。例如,如果您不使用缓存解决方案,性能将因为额外的页面请求进入并堆叠而停止运行,通常会导致Web或数据库服务器崩溃。

如果配置正确,大多数托管解决方案可以处理非常高的流量。将流量卸载到其他服务器也可以减少服务器负载。

诸如登录Brute Force攻击,图像链接(从高流量页面链接到您的图像文件的其他站点)或DoS攻击等滥用流量也会增加服务器负载。识别和阻止这些攻击非常重要。

软件版本和性能

确保使用最新软件也很重要,因为软件升级通常可以修复错误并提高性能。确保您运行最新版本的Linux(或Windows),Apache,MySQL / MariaDB和PHP非常重要。

WORDPRESS配置

您的主题将对您网站的效果产生巨大影响。一个快速,轻量级的主题将比一个沉重的图形负载低效的主题更有效。

插件数量及其性能也会对您网站的性能产生巨大影响。停用和删除不必要的插件是提高性能的一种非常重要的方法。

跟上WordPress升级也很重要。

图形大小

确保帖子中的图片针对网络进行了优化,可以节省时间,带宽并提高搜索引擎排名。

性能测试工具

  • 网页测试是一种从不同位置,浏览器和连接速度测试现实网站性能的工具。
  • Google PageSpeed Insights是衡量WordPress网站效果的方法,可以获得有关如何改进的明确,具体的反馈。
  • 内置的浏览器开发人员工具(即Firefox或Chrome)都具有性能测量工具。

如何提高WordPress的性能

优化您的WORDPRESS网站

最小化插件

提高WordPress性能的第一个也是最简单的方法是查看  插件。停用并删除任何不必要的插件。尝试有选择地禁用插件来测量服务器性能。

您的某个插件是否会显着影响您网站的效果?查看插件文档或在相应的插件支持论坛中寻求支持。

优化内容

  • 图像文件
    • 有没有不必要的图像?(例如,你可以用文字替换一些图像吗?)
    • 确保所有图像文件都已优化。为每个图像选择正确的格式(JPG / PNG / GIF)和压缩。
  • 文件总数/大小
    • 您是否可以减少显示网站平均页面所需的文件数量?
    • 当仍然使用HTTP1时,建议在单个优化文件中组合多个文件。
    • 缩小CSS和JavaScript文件。

您还可以卸载内容以优化主题。

升级硬件

为您的托管服务提供商支付更高的服务水平可能非常有效。增加内存(RAM)或切换到具有固态硬盘(SSD)的主机,例如Digital Ocean可以产生很大的不同。增加处理器数量和处理器速度也会有所帮助。在可能的情况下,尝试在多个服务器或VPS-es上将具有不同功能的服务(如HTTP和MySQL)分开。

优化软件

确保您运行的是最新的操作系统版本,例如Linux,Windows Server和最新的Web服务器,例如Apache或IIS,数据库,例如MySQL服务器和PHP。

也许您无法执行任务,并按照下面的提示进行操作。只需要求您的托管服务提供商为您执行此操作。一个好的托管服务提供商会升级或将您的帐户移动到升级的服务器,以匹配建议。如果需要,您可以切换到托管的WordPress托管解决方案

DNS:不要在WordPress服务器上运行DNS。使用DNS的商业服务,例如亚马逊的Route 53或您的域名注册商的免费服务。使用Amazon等服务还可以更轻松地在维护或紧急情况下切换备份服务器。它还提供了一定程度的容错能力。如果您在外部服务器上托管DNS,这将减少主Web服务器上的负载。这是一个简单的更改,但它会卸载一些流量和CPU负载。

Web服务器:您的Web服务器可以配置为提高性能。从Web服务器缓存到设置缓存标头以减少每个访问者的负载,有一系列技术。搜索特定的Web服务器优化(例如,搜索“apache optimization”以获取更多信息)。某些Web服务器具有您可以支付的更高速度版本,例如Apache Litespeed。根据您的特定主机和站点配置,还有许多方法可以调整Apache以获得更高的性能,例如Memcache。

PHP:有各种PHP加速器可以显着提高PHP文件的性能。这将适用于所有PHP文件,而不仅仅是您的WordPress安装。搜索PHP优化以获取更多信息,fe APC或OPcache。W3 Total Cache插件(如下所述)为Memcache,APC和其他Opcode缓存提供集成支持。

MySQL / MariaDB:MySQL或MariaDB优化本身就是一门黑色艺术。对查询缓存设置进行一些简单的更改会对WordPress性能产生巨大影响,因为WordPress会在每个请求上重复大量查询。如今,InnoDB是MySQL的默认存储引擎,你必须确保使用它。InnoDB可以进行优化和微调,搜索“mysql优化”,“mysql innodb性能”或“innodb优化”或更多信息和示例。搜索“mysql convert myisam to innodb”,了解有关如何将旧的MyISAM表转换为InnoDB的信息。

Iliya Polihronov在wordpressTV上展示了如何优化WordPress的一个很好的例子。除了其他方面,Iliya还为WordPress.com进行了服务器优化。

不要在WordPress服务器上运行邮件服务器。对于您的联系表格,请使用联系表格7和免费的Mailgun。

高速缓存

缓存插件

可以轻松安装W3 Total Cache或WP Super Cache等插件,并将WordPress帖子和页面缓存为静态文件。然后,这些静态文件将提供给用户,从而减少服务器上的处理负载。对于相当静态的页面,这可以提高几百倍的性能。

当与系统级页面缓存(如Varnish)结合使用时,这可能非常强大。如果您的帖子/页面有很多动态内容,配置缓存可能会更复杂。

W3总缓存

W3 Total Cache(W3TC)是WordPress性能插件的最新一代,它结合了Web开发权限的研究,为WordPress站点提供最佳用户体验。这些详细的指南将引导您完成

W3TC在优化服务器端和客户端性能方面独树一帜,增加了本机不可用的功能:

  • 页面缓存:W3TC通过创建静态HTML版本的页面来帮助减少响应时间,允许Web服务器在不调用PHP的情况下为它们提供服务。在创建注释或编辑页面时,它会自动更新缓存。
  • 缩小:从HTML,CSS和JavaScript文件中删除不必要的字符,然后在对缓存文件应用HTTP压缩之前分别组合它们。
  • 数据库缓存:数据库查询(对象)也被缓存,允许许多站点减少生成新页面所需的时间。这对于收到大量评论的网站尤其有用。
  • 标题:W3TC管理标题(实体标记,缓存控制,过期),它控制Web浏览器中文件的缓存,减少服务器负载并提高用户的感知性能。
  • 内容分发网络(CDN):使用CDN可以从主机帐户中卸载资源。W3TC将对图像,CSS,JavaScript和其他静态文件的请求移动到高性能服务器网络。最靠近访问者的服务器会自动用于下载文件,从而提供最快的下载速度。

W3TC可用于通过共享或专用托管在单服务器和多服务器环境中优化WordPress。

WP超级缓存

WP Super Cache是WordPress的静态页面缓存插件。它生成的HTML文件由Apache直接提供,无需处理相对繁重的PHP脚本,可帮助您在WordPress博客上大幅提高速度。

使用WP Super Cache,您的服务器可以以与提供常规图形文件相同的速度提供缓存的HTML页面。如果您的网站正在努力应对其每日访问者数量,或者它出现在Digg.com,Slashdot.org或任何其他热门网站上,请考虑使用WP Super Cache 。

服务器端缓存

Web服务器缓存 '更复杂,但在非常高流量的站点中使用。有超出本文范围的各种选项。最简单的解决方案从本地服务器缓存开始,而更复杂和涉及的系统可能在WordPress应用程序实际运行的Web服务器“前面”使用多个缓存服务器(也称为反向代理服务器)。将Alternative PHP Cache(APC)等操作码缓存添加到服务器将多次提高PHP的性能。

Varnish Cache与W3 Total Cache协同工作,将预先构建的页面存储在内存中,并快速提供,无需执行Apache,PHP,WordPress堆栈。

如上所述,使用诸如Disqus之类的评论插件而不是本机WordPress评论可以通过不要求您的读者登录到WordPress并增加Varnish可以从缓存中提供的页面查看次数来帮助Varnish。

浏览器缓存

浏览器缓存可以通过减少每页请求数来帮助减少服务器负载。例如,通过在不更改的文件(图像,CSS,JavaScript等静态文件)上设置正确的文件头,浏览器将在用户的计算机上缓存这些文件。此技术允许浏览器检查文件是否已更改,而不是简单地请求它们。结果是您的Web服务器可以回答更多304响应,确认文件未更改,而不是200响应,这需要发送文件。

查看HTTP Cache-Control(特别是max-age)和Expires头,以及实体标签以获取更多信息。

W3 Total Cache集成了对浏览器缓存和ETag的支持。

  • w3-total-cache-plugin(由Dougal Campbell提供)
  • WP Super Cache
  • 加快网站速度的最佳实践 - Expires / Cache-Control标头和ETag(由Yahoo! Developer Network提供)
  • WebSiteOptimization.com:使用服务器缓存控制来提高性能

内容卸载

使用内容传送网络(CDN)

使用CDN可以大大减轻您网站的负担。将图像,javascript,css和主题文件的搜索和传送卸载到CDN不仅速度更快,而且还可以大大减轻WordPress服务器自己的应用程序堆栈的负担。如果与如上所述的W3TC之类的WordPress缓存插件结合使用,CDN最有效。

CloudFlare是一个受欢迎的内容分发网络,它还提供Internet安全服务。计划从免费开始,但额外的功能可用于额外的费用。CloudFlare是固定成本的CDN,意味着它们按功能而非使用来收费。CloudFlare允许您在返回原始主机之前通过其网络路由您的网站流量。

Amazon Cloudfront使用Amazon S3服务为您的静态文件提供内容交付网络(CDN)功能。CDN是一种将静态文件缓存在全球众多Web服务器上的服务。为用户提供更快的下载性能,无论他们身在何处。建议您将Cloudfront与S3配合使用,而不仅仅是S3; 成本没有显着差异。

MaxCDN是与Amazon Cloudfront类似的按使用付费内容交付网络(CDN)。其中的差异是支持视频点播以及文件的“镜像”(无需上传),但您可以根据需要上传它们。

另一个替代CDN提供商是KeyCDN。它们在其支持页面上提供了逐步的WordPress集成指南。

KeyCDN和MaxCDN是最实惠的CDN选项之一,它们能够击败亚马逊等竞争对手的定价,因为它们是更大的CDN提供商的一个部门。

静态内容

可以将任何静态文件卸载到另一台服务器。例如,可以将任何静态图像,JavaScript或CSS文件移动到其他服务器。这是高性能系统(Google,Flickr,YouTube等)中的常用技术,但对于单个服务器正在挣扎的小型站点也很有用。此外,将此内容移动到不同的主机名可以为将来的多台服务器奠定基础。

一些Web服务器经过优化以提供静态文件,并且比Apache等更复杂的Web服务器(例如lighttpd)更有效。

Amazon Simple Storage Service(S3)是一种基于按使用付费的专用静态文件托管服务。在没有最低成本的情况下,对于达到共享或单个服务器可以处理的峰值的较低流量站点而言,这可能是实用的。

多个主机名

通过在多个主机名之间拆分静态文件,还可以对用户进行改进。大多数浏览器只会同时向服务器发出2个请求,因此如果您的页面需要16个文件,则会一次请求2个文件。如果您在4个主机名之间传播,则一次请求8个主机名。这可以减少用户的页面加载时间,但它可以通过创建更多的同时请求来增加服务器负载。另外,众所周知,“流水线”通常会在过度使用时使访客的互联网连接饱和。

卸载图像是最简单,最简单的起点。所有图像文件可以在三个主机名(assets1.yoursite.com,assets2.yoursite.com,assets3.yoursite.com)之间平均分配。随着流量的增长,这些主机名可以移动到您自己的服务器上。注意:避免随机选择主机名,因为这会影响浏览器缓存并导致更多流量,并且还可能会创建过多的DNS查找,这会导致性能下降。

同样,可以将任何静态JavaScript和CSS文件卸载到单独的主机名或服务器。

饲料

您的Feed可以很容易地卸载到外部服务。Google FeedBurner等Feed跟踪服务会自动执行此操作,Feedburner服务器将处理所有Feed流量,并且每隔几分钟仅更新一次来自您网站的Feed。这可以节省大量流量。

同样,您可以将自己的Feed卸载到单独的服务器(例如feeds.yoursite.com),然后处理您自己的Feed统计信息/广告。

  • 使用Amazon S3 / Cloudfront卸载映像:使用WordPress的Amazon S3和CloudFront,
  • 减少网站的带宽使用

压缩

有许多方法可以压缩服务器上的文件和数据,以便更快地将页面传递给读者的浏览器。上面描述的W3 Total Cache集成了对大多数常见压缩方法的支持。

W3 Total Cache支持Minify和Tidy来压缩和组合样式表和javascript文件。它还支持输出压缩,如zlib。

压缩媒体文件(即图像)也很重要。WP Smushit插件可以帮助这一点。

数据库调优

清理数据库

wp-optimize优化插件可以帮助你降低你的数据库额外的混乱。

您还可以指示WordPress 最小化其保存的帖子和页面的修订数量。

添加服务器

虽然它需要额外的专业知识,但添加服务器可以成为提高性能的有效方法。我强烈建议您阅读在AWS中构建高度可扩展的WordPress站点的指南,该指南使用亚马逊的关系数据存储(RDS)构建更昂贵,高度可扩展的AWS实施。

您可以使用Amazon的Elastic Load Balancer在多个Web服务器之间传播流量,您可以使用HyperDB或Amazon的RDS来运行更多可扩展或多个数据库服务器。

版权声明:
作者:王金阁
链接:https://www.nnbbxx.net/post-6348.html
来源:王金阁博客
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
< <上一篇
下一篇>>