欢迎光临
我们一直在努力

WordPress 终极加速系列 – W3 Total Cache

购买童装可电话联系:13783019327 同微信 巩义本地可去实体店选购。

随缘小居亲测插件确实提速了哦

本文来自百度 WordPress 吧中神人 @zouzhuangda 所作。将 WordPress 加速层次提升至服务器,建议有一定基础的同学用心研究此文,一定会有非常大的收获!

  原文地址:http://tieba.baidu.com/p/3160309040

  这篇写W3 Total Cache插件的应用和原理简介。在写怎样配置 W3 Total Cache(以下简称 W3TC)之前,先写怎么卸载它的方法:

    1、先在插件安装那里按照正常途径卸载。

    2、删除/wp-content/cache 目录下所有文件和文件夹。

    3、删除/wp-content目录下w3tc-config 文件夹:advanced-cache.php,db.php,object-cache.php 三个文件。

    4、删除网站根目录下的nginx.conf 。同时打开/etc/nginx/conf.d/suiyuan68.conf 删除此行(suiyuan68.conf 请按照实际情况修改):

    1
        

    include /usr/share/nginx/suiyuan68/nginx.conf;

    5、打开/wp-config.php 删除W3TC_EDGE_MODE 和WP_CACHE 配置项目。

  在安装 W3TC 之前请将网站根目录和根目录下所有子目录以及文件所有改成 nginx 用户组的 nginx 用户。否则重定向文件无法写入。具体命令:

1
    

chown -R nginx:nginx suiyuan68 //suiyuan68是网站根目录名

 
W3TC 配置详细说明

1、安装好 W3TC 后,打开/etc/nginx/conf.d/suiyuan68.conf ,添加include /usr/share/nginx/suiyuan68/nginx.conf; 这行需要添加到server 块的后面,其他定义文件的前面,注意位置,注意将suiyuan68 换成自己的目录。这是避免插件产生错误的最重要的一步。网站根目录的nginx.conf 是插件自动生成的,不用修改。
这个nginx.conf 文件是 W3TC 插件的重定向规则,如果这里出错,那么后续优化会出现网站乱码、找不到 CSS 文件,找不到 JS 文件等各种错误。

 

2、配置 Dashboard 选项:

先点击 Compatibility Test ,测试一下。

Opcode cache: Installed (APC)和 Memcache extension: Installed 必须要有,如果是未安装状态的话请检查 APC 是否安装正确,Memcached 和 PHP 的 Memcache 组件是否正确安装。

zlib output compression: Off 这项比较重要,必须是off,如果是on的话,到/etc/php.ini配置文件里面设置zlib.output_compression = Off

URL rewrite: Enabled 这个选项在倒数第2行,这是测试是否能重定向,如果有问题请检查第一条里面的nginx.conf 配置。

 

3、配置 General Settings 选项

  这个选项是一个总开关集合,可以在这里打开或者关闭所有配置。

    Page Cache 激活,选择 Memcached

    Minify Cache 激活,选择 Memcached,其他默认

    Database Cache 激活,选择 Memcached

    Object Cache 激活,选择 Memcached

    Borwser Cache 激活

    CDN,Reverse proxy,Monitoring 关闭

  Miscellaneous 选项里面有个重要的 Verify rewrite rules,必须勾选。

  并且,在这个选项的说明里,有个 Install 单词链接到了安装说明,告诉你怎么配置重定向文件,本机的重定向规则,以及 APC Memcached 的安装。如果配置安装方面有问题,可以参考这个标准文档。

  Debug选项是显示调试文档的,如果选中了,那么可以在每个页面的源代码的最后几行看到插件的工作情况。

  最后的Input/Export Settings 是导出导入配置文件,可以将配置文件下载或者上传。

 

4、Page Cache 选项

  Page Cache就是页面缓存,插件生成一个静态页面,并且将这个静态页面存储再 Memcached 中,用户请求这个页面的时候,不会执行 PHP 也不会读取数据库,直接从内存中读取这个页面,然后就返回给用户了。这样就极大的减小了服务器的负载。
  例如,用户浏览器访问 https://blog.gycq.net/index.php,
  正常程序是:服务器接到请求 -> 执行 PHP-> 读取 MySQL -> 生成返回页面 ->返回结果给用户。
  Page Cache缓存后的程序是:服务器接到请求 -> 到 Memcached 中读取存好的数据 -> 返回结果给用户。
  General选项卡:

    Cache front page:缓存首页,建议选取

    Cache feeds: site, categories, tags, comments:缓存站点地图,分类,评论什么的,这会影响站点的实时性,不建议选取

    Cache SSL (https) requests:缓存ssl链接返回,影响安全,不建议选取

    Cache URIs with query string variables:缓存链接地址和媒体查询字符串,建议选取

    Cache 404 (not found) pages:缓存404页面,不建议选取,因为正常站点404不会很多,而且影响404转跳。

    Cache requests only for blog.gycq.net site address:仅针对固定网站缓存,如果是用别的域名访问您的网站则不换存。不用选取了。

    Don’t cache pages for logged in users:未登录的用户可以查看登录用户缓存的页面。建议选取。

    Don’t cache pages for following user roles:如果激活该项,则可以在选择用户不进行page cache,也就是说被选择的用户不会进行缓存。

 

  Cache Reload选项卡:

  选择是否进行预缓存,就是说即使没有用户访问,插件会把站点所有页面变成静态的,然后缓存到Memcached。

   Automatically prime the page cache:自动缓存,不建议激活。如果一个站有1w个post,那么这些资源全部缓存一遍会造成服务器假死。而且下面的时间设置过短的话服务器就会不停 的去执行缓存任务,和缓存节省服务器资源的初衷背道而驰。如果post较少,可以考虑,不过我觉得这就是一鸡肋,此功能毫无意义。

  Preload the post cache upon publish events:每次更新post时都执行缓存。依然不建议激活。理由同上,有一个用户访问,页面就会被缓存,如果一个页面1年都没人访问,那缓存这个页面是没有意义的。

  Purge Policy:

  Page Cache 选显卡:

  这个选项卡是在文章内容变更时清洗掉已经存储的缓存内容。正告各位站长,此处保持默认设置不要更改,改了不光影响性能,而且可能造成会全站崩溃,我得出的结论是,此处有bug…….

  Advanced选项卡:

   Late initialization: 延迟加载以便使用功能碎片缓存。很容易造成 Memcached 卡死,这是 W3TC 的又一个坑。千万别选。如果你的 Page Cache 使用 APC 缓存的可以试试选这个。不过 APC 确实不适合存储页面缓存的其他内容,所以,还是放弃吧。

 

5、Minify 选项

   Minify 主要工作是优化 HTML、CSS、JS。将 HTML、CSS、JS 文件这些静态文件压缩合并。压缩这些文件可以减少网络传输量,合并这些文件可以减少http请求数量,这2条路都是减少网络传输的重要途径。W3TC 的 Minify 可是一个大坑,稍有不慎就会导致无法加载 CSS,无法加载 JS。这个坑的源头就是最前面说的 Nginx 重定向,如果重定向做好了那么这里被坑的几率就很小。

  Minify 最先讲最下面的 Advanced 选项卡,第一个要做的事情就是将最下面的

  Include external files/libaries: 里面的 googleapis.com 的地址删除。原因你懂的。

  Disable minify automatic file name length test: 这项是自动测试合并后的文件名的长度,有些 Linux 不支持此功能,我是建议关闭,然后自己填写一个长度。

   其他选项就是设置不进行 Minify 压缩处理的 Page、JS、CSS,以及某用户永不接收被压缩处理过的文件等,这里只有靠大家自己处理了,如果有插件或者主题的某个文件不能被 Minify 压缩处理,挑选出来填在这里,就可以避过一个坑。有多少用户由于不知道设置这里而放弃使用 W3TC 插件的。。。

General:选项卡

Rewrite URL structure:激活重定向,必选,不解释。如果nginx重定向没有设置好,这里是会出问题的。

Disable minify for logged in users:对登录用户关闭minify处理文件。不建议激活。激活以后,如果minify出问题,未登录用户看到的是乱码,而站长是登录状态,那么站长看到的是正常页面,这个效果恐怖吧。

Minify error notification:如果minify出问题了,怎么通知你。随意,别选关闭就行了,但是必须保证你能收到通知。

HTML&XML选项卡:

    HTML minify settings:

    Enable 激活

    Inline CSS minification 压缩文档内的css

    Inline JS minification 压缩文档内的js

    Don’t minify feeds 不处理feeds

    Clean 清除一些空格,回车什么的

    Hide comments 不要注释

 

CSS选项卡:

    CSS minify settings: Enable 激活

    Combine only 仅联合,激活

    Remove unnecessary backslashes 移除多余的反斜杠,激活

    Compress colors压缩颜色定义,激活

    Compress font-weight 压缩字体定义,激活

    Lowercase selectors 转小写,激活

    Remove last 移除结尾的空格,回车符号之类的,激活

    Sort Properties 属性排序,便于浏览器解析,激活

    Sort Selectors (caution) 选择器排序,提高浏览器解析速度,不建议激活,有可能出错

    Discard invalid properties 丢弃无效的属性,这个主要是有css版本兼容的问题,如果都符合同一个标准可以选择,但是这个要求有点困难。

    Preserve CSS 维持CSS?这个不太懂,有懂的同学交流一下。

    Add timestamp 没必要,不选

    @import handling: none是不处理,bubble是冒泡式也就是循环着来,一层层处理,process是线性处理,大家排好队,一个个来。2、3

    别不大,反正是处理好以后进缓存,我管你什么处理过程。

    Compression: 压缩,有高中低可选,建议选标准,压狠了占cpu,不压占带宽,这是一个双刃剑,根据自己的访问量来。

    Optimize shorthands: 优化缩写,css有些地方可以省略掉px什么的,这个就是优化选项了。

    Case for properties: 选择属性,可以选大写小写神马的,也就是统一了css描述属性字母大小写。

    Regroup selectors: 合并方式的选择。可以控制一些属性的合并,目的也是减小文件大小。

   再次提醒 Minify 是整个 W3TC 最坑的地方,大家谨慎选择以上选项,如果出问题了,可以按F12,看看是哪个文件出问题,然后再调整。问题的一个根源是重定向,另一个根源是插件和主题不 规范,很久以前的插件,匆忙乱写的插件,引用了墙外的库,各种问题都会出现。

 

6、Database Cache

   这是数据库缓存,这个缓存的作用是将数据库的数据保存在 memcached 里面,当需要这些数据的时候直接从 memcached 读取,避免去数据库读,目的是减少 MySQL 的调用量。当访问量增大的时候,MySQL 被视为 WordPress 的性能瓶颈,这个功能在很大程度上缓解了这个瓶颈。

General选项卡:

    Don’t cache queries for logged in users :对登录用户不缓存,官方建议激活,原因是登录用户可能会评论,以及其他交互性操作,此类操作需要即时性,不适合缓存。由于 MySQL 已有缓存机制,所以,此处选择激活不会太影响性能。

Advanced选项卡:

    Memcached hostname:port / IP:port: memcached 的地址和端口

    Maximum lifetime of cache objects: 缓存对象的最大生命周期

    Garbage collection interval:废弃数据周期

    Never cache the following pages:不做Database缓存的页面

    Ignored query stems:忽略的词根

    Reject query words:包含这些关键字的SQL语句不会被缓存

 

7、Object Cache

   对象缓存,这个词程序员一听就知道怎么回事,但是我这里不向大家解释什么是对象。我从缓存的效果这方面来说,在这里对象可以简单理解为已经经过php处 理过的东西。对象缓存就是将这东西放到 memcached 里面,要用的时候直接拿出来用,而不必重新去建造这东西,自然,服务器就节省了建造这些东西的开销。一个用户访问 WordPress 的主页,可能产生数十个到数千个对象,数万用户访问的时候,这些节约出来的资源非常可观。前面几个选项就不说了,意思和Database Cache一样。

    Global groups:当wordpress启用网络模式的时候,这些组的对象会被共享。(这也是使用 memcached 缓存的一个附带优势)

    Non-persistent groups:这个列表里的对象不会被缓存。

 

8、Browser Cache

  浏览器缓存,这是通过http协议,设置http头,告诉浏览器该对哪些文件进行怎样的缓存。浏览器会根据这些数据,将文件保存在本地,下次访问的时候,就不会再向服务器申请这些文件了,会从本机直接获取这些文件。
例如,服务器通知浏览器 blog.gycq.net/test.jpg 这个文件保存在本地30天,那么30天内,浏览器都不会再次向服务器申请这个文件,每次需要显示这张图片的时候会直接从本地读取。

General选项卡:

    Set expires header

    Set cache control header:设置缓存控制的http头信息

    Set entity tag (eTag) :设置 Etag 头鼓励浏览器缓存文件。

    Set W3 Total Cache header: 设置一个W3TC插件自定义的 http 头协助确定优化文件。

    Enable HTTP (gzip) compression:以gzip压缩后的格式向浏览器返回数据,减少基于文本的文件的下载时间。请注意,此项有可呢会引起某些主题的乱码。这种问题一般是主题或者插件已经对返回内容进行过压缩了,此处再压缩有可能引起乱码。

    Prevent caching of objects after settings change:当设置被更改时,将为缓存目标生成一个新的查询字符串,如果缓存目标未到期的情况下服务器设置进行了更改,那么浏览器会加载新的被更改的资源。

    Prevent caching exception list:这个列表里的文件不会适用上一项的设置更改。支持正则表达式。

    Don’t set cookies for static files:不为静态文件设置 Cookies

    Do not process 404 errors for static objects with WordPress: 不要使用 WordPress 的404错误处理方式来处理静态文件的404方式。因为有些网站有404重定向的处理,当静态文件出现404错误时,不适用这些处理方式。如果一个图片找 不到,服务器因此做一个404转跳,有点浪费资源。如果有些插件是动态生成图片或者其他静态文件,而且需要进行404转跳,那么可以在下表404 error exception list列出。这里也是一个坑,如果激活该项的话,请注意您的网站有没有类似插件。
    后面的3个选项卡,基本上就是分类将以上的部分内容重复一遍,以便使用者能够根据自己的实际情况分开控制 HTML/JS/CSS/图片等。我就不一一列举了。

 

9、User Agent Groups

   管理用户代理组,这个名字很别扭。它的实际作用就是将一些用户进行302转跳。应用场景如下:当一个网站具有桌面浏览的一套主题在域名 blog.gycq.net上,手机浏览的一套主题在域名m.suiyuan68.cn上,那么当手机用户访问blog.gycq.net的时候,会通过 302转跳,将这个请求转跳到m.suiyuan68.cn上。

    Theme:对应的式样

    Redirect user to:转跳到的地址

    user agents:这个组包含哪些用户

    可以设置多个组,转跳到不同的式样。

未经允许不得转载:随缘小居 » WordPress 终极加速系列 – W3 Total Cache
购买童装可电话联系:13783019327 同微信 巩义本地可去实体店选购。
5

评论 3

评论前必须登录!

 

  1. #-49

    如果有一天,我潇洒死去,请记得,我来过这里!

    4440470794年前 (2016-07-05)
  2. #-48

    博客打开速度确实还可以。

    付禹龙4年前 (2016-07-05)
  3. #-47

    贴吧中的精品越来越少了。

    themebetter4年前 (2016-07-06)

不跟随,有视角焦点的博客

联系我们联系我们