WordPress站点加速之开启Gzip压缩加快传输 – WordPress教程

王小优
王小优
王小优
231
文章
0
评论
2015年9月18日
评论
8,739 3762字阅读12分32秒

最近都没有使用Gzip压缩,是因为发现开启这个压缩也是有学问的。服务器上设置、WordPress站点上设置还是插件上设置让我有所疑惑。通过几天的研究学习,总结并分享下如何将WordPress站点开启Gzip压缩以达到加快传输的目的。

WordPress站点加速之开启Gzip压缩加快传输 – WordPress教程

Nginx开启Gzip的方法

  1. gzip on;
  2. gzip_min_length  1k;
  3. gzip_buffers     4 16k;
  4. gzip_http_version 1.1;
  5. gzip_comp_level 6;
  6. gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
  7. gzip_vary on;
  8. gzip_proxied   expired no-cache no-store private auth;
  9. gzip_disable   "MSIE [1-6]\.";

值得一提的是,如果你是使用宝塔面板,那么它已经默认给你开启了Gzip压缩功能,如下图所示:

WordPress站点加速之开启Gzip压缩加快传输 – WordPress教程

Apache开启Gzip的方法

首先确保你的Apache已经加载了mod_deflate模块,然后在httpd.conf代码中加载以下代码:

  1. <IfModule mod_deflate.c>
  2. AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/json application/x-httpd-php application/x-javascript
  3. </IfModule>

如果你没有权限修改你的主机,你也可以将以上代码复制到网站根目录的.htaccess文件中。

PHP开启Gzip的方法

如果修改Apache的httpd.conf文件无效,则可以通过修改PHPphp.ini方法:

打开PHP目录下的php.ini文件,找到zlib.output_compression = Off,改成zlib.output_compression = On,再把;zlib.output_compression_level前面的;去掉,后面的-1改成1-9的值,1的压缩比率最低,建议取5。这样便可以实现所有PHP页面的Gzip效果。

如果无法修改php.ini文件,则可以在需要Gzip压缩的PHP文件头部加入:

  1. if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) {
  2.     ob_start('ob_gzhandler');
  3. }else{
  4.     ob_start();
  5. }

就可以实现该PHP页面Gzip压缩。

WordPress开启Gzip的方法

如果上述方法都无效,则将下面的代码复制到当前主题的functions.php文件中也可以实现WordPress整站Gzip压缩:

  1. //WordPress站点加速之开启Gzip压缩加快传输 - https://www.wangxiaoyou.com/1155.html
  2. add_action('init', 'wpjam_gzip_compression');
  3. function wpjam_gzip_compression(){
  4.     if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) {
  5.         ob_start('ob_gzhandler');
  6.     }else{
  7.         ob_start();
  8.     }
  9. }

.htaccess开启Gzip压缩

编辑站点根目录.htaccess文件,在最后面加上一下三种代码中的任意一种。

代码一

  1. php_value output_handler ob_gzhandler

代码二

  1. <IfModule mod_expires.c>
  2. ExpiresActive On
  3. ExpiresByType image/gif A2592000
  4. ExpiresByType image/jpeg A2592000
  5. ExpiresByType image/png A2592000
  6. ExpiresByType image/x-icon A2592000
  7. ExpiresByType application/x-javascript A604800
  8. ExpiresByType text/css A604800
  9. </IfModule>
  10. <IfModule mod_deflate.c>
  11. SetOutputFilter DEFLATE
  12. AddOutputFilterByType DEFLATE text/html text/css image/gif image/jpeg image/png application/x-javascript
  13. </IfModule>

代码三

  1. php_flag zlib.output_compression On
  2. php_value zlib.output_compression_level 6

WordPress插件开启Gzip的方法

这里就有很多可以开启Gzip的插件了,我就随意举几个亲自尝试的例子,具体适用与否需要自己尝试。

WP Super Cache插件

如果你的WordPress已安装WP Super Cache缓存插件,可以在WP Super Cache设置→高级选项中勾选Compress pages so they’re served more quickly to visitors.(Recommended)一项,这样也可以开启Gzip压缩,想必很多人都见过,我就不截图了!

WP Performance插件

如果你使用的是WP Performance插件,那就更简单了,直接在插件设置主页勾选。

WordPress站点加速之开启Gzip压缩加快传输 – WordPress教程

Gzippy插件

如果你使用的是Gzippy插件,直接启动插件即可。

index开启Gzip的方法

通过修改WordPress根目录index.php文件开启Gzip压缩,这是我认为最愚蠢的办法!

为什么呢?众所周知,WordPress的更新换代好比换内裤,三天两头更新。更新一次你就得改一次,你说是不是最愚蠢的办法?但是,如果上方的你都不行的时候,倒是不妨使用这个方法试试!

进入WordPress网站根目录,修改index.php文件,找到:

  1. define(’WP_USE_THEMES’, true);

在后面加上:

  1. //WordPress站点加速之开启Gzip压缩加快传输 - https://www.wangxiaoyou.com/1155.html
  2. ob_start(‘ob_gzhandler’)

我在上面加个地址,以免你忘了这句话什么意思。别忘了升级WordPress之后重新加回去!

Gzip使用注意及说明

如果在.htaccess文件中禁止了Gzip功能的话,那在php.ini文件中开启后也需在.htaccess文件中开启 Gzip,否则没有效果。

开启WordPress的Gzip功能后,服务器将在页面传输前将页面压缩后传送,可以有效减少服务器的带宽使用,也可以加速页面下载。

另外请注意只能选择一种方式来开启WordPress的Gzip压缩,否则有可能造成冲突,请谨记。

经过测试,采用服务器压缩要比使用PHP压缩要更快,而且压缩之后更小。所以最好的方法还是直接让Apache直接进行Gzip压缩。如果无法修改Apache的httpd.conf文件,再尝试去修改php.ini文件,最终才是使用修改PHP文件以及hook的方法。

Gzip测试方法

以下代码可通过运行cdm测试。

整个页面测试代码

  1. curl -I -H "Accept-Encoding: gzip, deflate" "https://www.wangxiaoyou.com"

CSS通过Gzip压缩测试代码

  1. curl -I -H "Accept-Encoding: gzip, deflate" "https://www.wangxiaoyou.com/wp-content/plugins/wpjam-basic/static/style.css"

JS通过Gzip压缩测试代码

  1. curl -I -H "Accept-Encoding: gzip, deflate" "https://www.wangxiaoyou.com/wp-content/plugins/wpjam-basic/static/script.JS"

图片通过Gzip压缩测试代码

  1. curl -I -H "Accept-Encoding: gzip, deflate" "https://www.wangxiaoyou.com/wp-content/uploads/2019/01/wordpresszmm.jpg"

小于1K文件Gzip压缩测试代码

  1. curl -I -H "Accept-Encoding: gzip, deflate" "https://www.wangxiaoyou.com/wp-content/plugins/wpjam-basic/static/morris.css"
若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如果喜欢,请打赏支持本站,谢谢大家!
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微博
  • 微博扫一扫
  • weinxin
王小优
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: