平台严格禁止发布违法/不实/欺诈等垃圾信息,一经发现将永久封禁帐号,针对违法信息将保留相关证据配合公安机关调查!
本文来自百度 WordPress 吧!将 WordPress 加速层次提升至服务器,建议有一定基础的同学用心研究此文,一定会有非常大的收获!
这篇写W3 Total Cache插件的应用和原理简介。在写怎样配置 W3 Total Cache(以下简称 W3TC)之前,先写怎么卸载它的方法:
1
|
include /usr/share/nginx/erwas/nginx.conf;
|
在安装 W3TC 之前请将网站根目录和根目录下所有子目录以及文件所有改成 nginx 用户组的 nginx 用户。否则重定向文件无法写入。具体命令:
1
|
chown -R nginx:nginx erwas //erwas是网站根目录名
|
1、安装好 W3TC 后,打开/etc/nginx/conf.d/erwas.conf ,添加include /usr/share/nginx/erwas/nginx.conf; 这行需要添加到server 块的后面,其他定义文件的前面,注意位置,注意将erwas 换成自己的目录。这是避免插件产生错误的最重要的一步。网站根目录的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 选项
这个选项是一个总开关集合,可以在这里打开或者关闭所有配置。
Miscellaneous 选项里面有个重要的 Verify rewrite rules,必须勾选。
并且,在这个选项的说明里,有个 Install 单词链接到了安装说明,告诉你怎么配置重定向文件,本机的重定向规则,以及 APC Memcached 的安装。如果配置安装方面有问题,可以参考这个标准文档。
Debug选项是显示调试文档的,如果选中了,那么可以在每个页面的源代码的最后几行看到插件的工作情况。
最后的Input/Export Settings 是导出导入配置文件,可以将配置文件下载或者上传。
4、Page Cache 选项
Page Cache就是页面缓存,插件生成一个静态页面,并且将这个静态页面存储再 Memcached 中,用户请求这个页面的时候,不会执行 PHP 也不会读取数据库,直接从内存中读取这个页面,然后就返回给用户了。这样就极大的减小了服务器的负载。
例如,用户浏览器访问 https://www.erwas.com/index.php,
正常程序是:服务器接到请求 -> 执行 PHP-> 读取 MySQL -> 生成返回页面 ->返回结果给用户。
Page Cache缓存后的程序是:服务器接到请求 -> 到 Memcached 中读取存好的数据 -> 返回结果给用户。
General选项卡:
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选项卡:
CSS选项卡:
再次提醒 Minify 是整个 W3TC 最坑的地方,大家谨慎选择以上选项,如果出问题了,可以按F12,看看是哪个文件出问题,然后再调整。问题的一个根源是重定向,另一个根源是插件和主题不规范,很久以前的插件,匆忙乱写的插件,引用了墙外的库,各种问题都会出现。
6、Database Cache
这是数据库缓存,这个缓存的作用是将数据库的数据保存在 memcached 里面,当需要这些数据的时候直接从 memcached 读取,避免去数据库读,目的是减少 MySQL 的调用量。当访问量增大的时候,MySQL 被视为 WordPress 的性能瓶颈,这个功能在很大程度上缓解了这个瓶颈。
General选项卡:
Advanced选项卡:
7、Object Cache
对象缓存,这个词程序员一听就知道怎么回事,但是我这里不向大家解释什么是对象。我从缓存的效果这方面来说,在这里对象可以简单理解为已经经过php处理过的东西。对象缓存就是将这东西放到 memcached 里面,要用的时候直接拿出来用,而不必重新去建造这东西,自然,服务器就节省了建造这些东西的开销。一个用户访问 WordPress 的主页,可能产生数十个到数千个对象,数万用户访问的时候,这些节约出来的资源非常可观。前面几个选项就不说了,意思和Database Cache一样。
8、Browser Cache
浏览器缓存,这是通过http协议,设置http头,告诉浏览器该对哪些文件进行怎样的缓存。浏览器会根据这些数据,将文件保存在本地,下次访问的时候,就不会再向服务器申请这些文件了,会从本机直接获取这些文件。
例如,服务器通知浏览器 www.erwas.com/test.jpg 这个文件保存在本地30天,那么30天内,浏览器都不会再次向服务器申请这个文件,每次需要显示这张图片的时候会直接从本地读取。
General选项卡:
9、User Agent Groups
管理用户代理组,这个名字很别扭。它的实际作用就是将一些用户进行302转跳。应用场景如下:当一个网站具有桌面浏览的一套主题在域名www.erwas.com上,手机浏览的一套主题在域名m.erwas.com上,那么当手机用户访问www.erwas.com的时候,会通过302转跳,将这个请求转跳到m.erwas.com上。