首页 > CMS教程 > &#&按 > 测量Brotli压缩对WordPress的影响

测量Brotli压缩对WordPress的影响

Christopher Nolan
发布: 2025-02-10 08:38:09
原创
798 人浏览过

Brotli压缩:提升WordPress网站性能的利器

核心要点:

  • Google推出的新型压缩算法Brotli能显着提升WordPress网站性能,方法是减小文件大小,加快加载速度。
  • 在服务器上安装和配置Brotli可能比较复杂,因为它尚未在流行的Web服务器上正式发布,需要手动配置才能与WordPress完全集成。
  • Brotli的压缩率比另一种现代压缩算法Gzip高出20-26%,从而产生更小的文件和更快的加载速度。
  • 尽管Brotli有很多优点,但并非所有浏览器都支持它,而且只能在HTTPS上使用,这可能会给一些用户带来采用上的挑战。

WordPress凭借易用性、强大的社区支持和可配置性等诸多优势成为优秀的CMS。然而,WordPress用户经常面临的一个难题是网站性能问题。本文将探讨Brotli压缩及其对WordPress性能的影响。

免责声明:我为KeyCDN工作,此处引用了他们的一些文章和工具。

网上有很多关于“加速WordPress”的文章,它们提供了许多改进网站加载速度的方法,包括使用插件进行优化。然而,自从Google发布了最新的压缩算法Brotli以来,收集到的数据还不足以确定在WordPress网站上启用它会带来什么样的性能提升。

在本文中,我们将通过在三种不同场景下测试WordPress性能来衡量Brotli压缩的效果:

  1. 启用Gzip的WordPress
  2. 启用Brotli的WordPress
  3. 启用Brotli 支持Brotli的CDN的WordPress

什么是Brotli压缩?

Brotli(以一种瑞士烘焙产品命名)是Google在2015年发布的一种相对较新的压缩算法。根据Google的说法,Brotli压缩结合使用了现代LZ77算法变体、霍夫曼编码和二阶上下文建模。

Google使用Brotli压缩算法进行了各种测试,并将结果与其他现代压缩算法进行了对比。根据这项研究,Google发现Brotli在压缩率方面平均比Zopfli(另一种现代压缩算法)高出20-26%。在性能方面,文件压缩得越小总是受欢迎的。

在服务器上安装和配置Brotli

Brotli的一个小缺点是它尚未在任何流行的Web服务器上正式发布。这意味着,如果您今天想在服务器上启用Brotli,则需要进行一些配置工作。以下Brotli性能测试均在运行Nginx的Ubuntu 16.04.2 LTS上进行(需要了解如何使用Nginx?请查看SitePoint高级课程《使用Nginx加速网站》)。下面,我们将逐步介绍如何在相同的操作系统和Web服务器上运行Brotli。

Ubuntu 16.04是第一个允许您使用apt-get安装Brotli的Ubuntu发行版。为此,只需运行:

$ apt-get update && apt install brotli
登录后复制
登录后复制

完成后,您需要为Brotli压缩安装Nginx模块并编译最新版本的Nginx(当前版本为1.13.0):

$ apt-get update && apt install brotli
登录后复制
登录后复制

Brotli现在应该已正确安装在您的服务器上。接下来,您需要配置nginx.conf文件以指定所需的配置指令。以下指令用于这些性能测试;但是,您可以根据需要修改它们。

Brotli设置

$ git clone --recursive https://github.com/google/ngx_brotli ngx_brotli

$ wget http://nginx.org/download/nginx-1.13.0.tar.gz
$ tar zxvf nginx-1.13.0.tar.gz
$ cd nginx-1.13.0

$ ./configure --add-module=../ngx_brotli
$ make && make install
登录后复制

完整的指令列表可以在Nginx模块Github页面上找到。

由于修改了nginx.conf文件,因此最后一步是重新加载Nginx。为此,请运行以下命令:

brotli on;
brotli_comp_level 3;
brotli_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;
登录后复制

测试Brotli支持

Brotli现在应该已安装并配置在您的服务器上。要验证这一点,您可以选择两种方法。

  1. 使用Brotli测试工具,该工具将根据域名检查服务器是否支持Brotli。 Measuring the Effects of Brotli Compression on WordPress
  2. 使用Chrome浏览器,打开Chrome开发者工具并导航到“网络”选项卡。刷新页面并选择一个资源。您应该会看到content-encoding的值现在为br,代表Brotli。 Measuring the Effects of Brotli Compression on WordPress

配置Brotli以与WordPress配合使用

此时,您应该能够使用Brotli压缩正确地交付WordPress资源。但是,如果您检查HTML文档的请求标头详细信息,您可能会注意到content-encoding值仍然为“Gzip”。这是由于WordPress PHP代码依赖于PHP设置zlib.output_compression“On”。

不幸的是,目前无法使用WP过滤器更改此设置。但是,随着Brotli的普及,WordPress可能会引入简单的修复程序。目前,您需要手动禁用zlib.output_compression,方法是编辑php.ini文件(如果使用PHP 7.0,则位于/etc/php/7.0/fpm/php.ini)。只需将zlib.output_compression设置为Off,然后使用systemctl restart php7.0-fpm.service重新启动PHP。

现在,在检查网站的HTML文档时,您应该能够看到content-encoding标头值br。

Measuring the Effects of Brotli Compression on WordPress

在WordPress上进行Brotli性能测试

如上所述,我们的Brotli性能测试是在三种不同的场景下进行的。

  1. 启用Gzip的WordPress
  2. 启用Brotli的WordPress
  3. 启用Brotli 支持Brotli的CDN的WordPress

Brotli和Gzip压缩级别均设置为“3”。可以根据您喜欢的文件节省量与压缩时间来修改压缩级别。每个测试都使用运行“2017”主题的普通WordPress安装。默认情况下,此主题加载14个资源并传输236KB的数据。

需要注意的是,上述测试网站中的并非所有资源都是可压缩的。例如,图像既不会被Gzip压缩,也不会被Brotli压缩,任何第三方资源(如字体)也不会被Brotli压缩。因此,使用Gzip的所有压缩资源的总大小的基线为84.7KB。为了考虑加载时间的变化,我们对每个页面都进行了三次硬刷新,并计算了每个测试场景的平均加载时间。这样,所有资源都将从服务器加载,而不是从浏览器缓存加载。

下表概述了加载速度和压缩资源大小的结果。

WordPress Gzip WordPress Brotli WordPress Brotli CDN
加载速度 780 ms 690 ms 630 ms
压缩大小 84.7 KB 81.7 KB 81.7 KB

正如结果所示,两种Brotli压缩方法的加载时间都比Gzip快,压缩大小也更小。尽管页面大小的差异并不显着,但请记住,这些测试是在裸机WordPress安装上进行的。对于那些拥有许多资源的网站,多个资源上的少量节省肯定会累积起来。

此外,出于测试目的,我们将两种压缩方法都设置为最高级别,以观察可压缩资源大小的差异。结果如下:

  • Brotli 11 – 压缩大小:67.7 KB
  • Gzip 9 – 压缩大小:76.7 KB

尽管在这两种情况下,将压缩级别设置为最大可能并非必要(因为压缩时间长得多),但值得注意的是,Brotli网站的可压缩资源大小比Gzip网站的可压缩资源大小小13.2%。

Brotli支持现状

Brotli并非所有浏览器都普遍支持,尽管许多流行的浏览器目前都支持它(截至2017年5月)。

Measuring the Effects of Brotli Compression on WordPress https://www.php.cn/link/fc5f86251458722c799d1830fa0c2c1f

至于服务器支持,大多数流行的Web服务器都提供官方或社区创建的模块。如本文的安装过程所示,Nginx用户必须安装扩展程序并使用Brotli支持编译Nginx。同样,Apache用户可以使用mod_brotli模块来交付Brotli压缩的内容。

Brotli的优缺点

和任何事物一样,使用Brotli也有其优缺点。以下是一些需要考虑的几点。

优点

  • 更小的压缩结果
  • 更快的加载时间
  • 与Gzip相比,压缩时间相当

缺点

  • 目前采用起来有点麻烦
  • 并非所有浏览器都支持
  • 需要手动配置才能与WordPress完全集成

此外,Brotli只能在HTTPS上使用,这既可以看作是优点,也可以看作是缺点。一方面,它正在帮助更多网站从HTTP迁移到HTTPS,从而创建一个更安全的互联网。另一方面,它为那些想要启用Brotli但仍在使用HTTP的用户带来了更多工作。

总结

如测试结果所示,在WordPress网站上实现Brotli在性能方面非常有益。在源服务器上实现Brotli允许在服务器端进行压缩,然后在支持Brotli压缩的CDN上缓存该内容,从而实现更快的资源交付。

尽管Brotli尚未被所有浏览器普遍支持,但重要的是要识别访问者最常使用的浏览器,并通过提供更快的加载时间来满足他们的需求。此外,对于那些使用尚未支持的浏览器的用户,这些浏览器只会回退到使用Gzip——双赢的局面。

关于WordPress Brotli压缩的常见问题解答(FAQ)

Brotli和Gzip压缩有什么区别?

Brotli和Gzip都是用于压缩数据的算法,但它们有一些关键区别。由Google开发的Brotli是一种较新的算法,它比Gzip提供更好的压缩率。这意味着它可以使文件更小,这可以加快网站的加载速度。但是,Brotli不像Gzip那样得到广泛支持,因此它可能无法在所有浏览器或服务器上运行。

Brotli压缩如何提高网站性能?

Brotli压缩通过减小构成网站的文件的大小来工作。这意味着当用户访问您的网站时,他们的浏览器需要下载的数据更少,这可以加快加载速度。更快的加载速度可以改善用户体验,并对网站的SEO产生积极影响。

所有浏览器都支持Brotli压缩吗?

虽然包括Google Chrome和Firefox在内的许多现代浏览器都支持Brotli压缩,但并非所有浏览器都支持它。例如,Internet Explorer不支持Brotli压缩。因此,在决定是否使用Brotli压缩时,务必考虑您的受众及其可能的浏览器使用情况。

如何测试我的网站是否正在使用Brotli压缩?

有几种可用的在线工具可以测试您的网站是否正在使用Brotli压缩。这些工具通过向您的网站发送请求,然后分析响应以查看它是否已使用Brotli进行压缩来工作。

我可以在我的WordPress网站上使用Brotli压缩吗?

是的,您可以在您的WordPress网站上使用Brotli压缩。但是,实现Brotli压缩可能比其他类型的压缩更复杂,因为它需要修改服务器配置。还有一些插件可以帮助您在WordPress网站上实现Brotli压缩。

使用Brotli压缩的潜在缺点是什么?

虽然Brotli压缩可以提高加载时间,但它并非没有潜在的缺点。首先,它不像其他压缩方法(如Gzip)那样得到广泛支持。这意味着它可能无法在所有浏览器或服务器上运行。此外,Brotli压缩可能比其他方法更消耗资源,这可能会减慢服务器速度。

Brotli压缩是如何工作的?

Brotli压缩通过查找并删除数据中的冗余来工作。它使用常用单词和短语的字典来将重复数据替换为更短的表示形式,从而减小数据的整体大小。

Brotli压缩会影响我的网站SEO吗?

是的,Brotli压缩可能会对您的网站SEO产生积极影响。这是因为搜索引擎在对网站进行排名时考虑的因素之一是加载时间。通过减小网站文件的大小,从而提高加载速度,Brotli压缩可以帮助提高网站的SEO。

Brotli压缩适用于所有类型的网站吗?

Brotli压缩可以使许多类型的网站受益,特别是那些拥有大量文本数据(如博客或新闻网站)的网站。但是,对于包含大量多媒体内容的网站,它可能不太有益,因为此类内容通常已经过压缩,并且使用Brotli可能不会看到显着的尺寸减小。

如何在我的服务器上实现Brotli压缩?

在服务器上实现Brotli压缩通常需要修改服务器的配置文件以启用Brotli压缩并指定应压缩的文件类型。确切的过程可能因服务器的操作系统和您使用的Web服务器软件而异。

以上是测量Brotli压缩对WordPress的影响的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板