一直羡慕别人用静态博客,但自己不会,所以时不时骚扰博友老麦,关于静态博客的一些问题。前阵子博客圈刮起了软云服务器风,膜拜了老麦等人的静态秒开博客,于是又心动了,继续骚扰老麦。老麦耐心给分析了后,我也觉得还是坚守wordpress算了,毕竟不会折腾,用静态博客需求定制的地方多,出问题的概率也高,这么折腾太耗时间。决定坚守wordpress,于是又开始折腾加速的事,不能秒开,只能接近秒开。
记录前先致谢下老麦,基本上是我的专职网络问题咨询师,随时问,必有详尽回复。真幸运能遇到这么好的博友!
W3 Total cache和CDN其实我一直在用,用它们加速wordpress的内容可看我另一篇记录《wordpress程序应用经验与心得》,今天这篇主要是在配置中又有心得,所以详细记录下设置,方便用W3的同学参考。先声明下,我的心得都是人肉踩坑实践的,如果懂技术,能看懂所有选项的参数含义,那这篇帖子就不用看了。
W3 Total cache设置
W3有一个主控页面,和对应的功能设置页面,整体比较复杂,但弄明白其中的逻辑关系了还是比较清晰的。主控页面负责总开关,详情页面负责细节设置。重点说明下,缓存是指把动态页面缓存为静态页面,存在自己服务器上,而后面的浏览器缓存是设置的CDN和用户浏览器缓存,是两个不同的功能。所谓的静态化插件主要功能是前者,但将静态文件缓存到浏览器上则能加快客户端加载速度。我已经memcached,缓存都存在了这,你们可以根据自己的实际情况选。
红框里这些需要设置,其他的我目前用不到,所以没有设置。
标记“2”的这个选手动,选了自动问题可能比较多,且达不到最有效果。
标记“3”的这个我只选过这项,另外一项没有尝试过。
CDN缓存的功能类似于wordpress常用的动静分类,然后给静态资源配置单独域名,用于静态资源加速。我觉得没有这个必要,CDN能够用文件类型分类设置加速,且主域名也需要CDN保护,所以没有使用这个功能。
页面设置
下面是JS和CSS选项设置
数据库设置
浏览器缓存设置
浏览器缓存能降低用户端对静态资源的重复加载,但html页面不要设置,否则就不会及时刷新。其实CDN本身下载静态资源也很快,设置了浏览器缓存对于不大的页面加速有限,但却能节省CDN流量。
控制头
上面浏览器缓存中有个重要的参数,就是控制头,设置控制头可以调整客户端浏览器缓存资源的时间。控制头设置的时间如果太长,则浏览器不会请求CDN,所以会直接调用缓存资源,这会让更新不及时。
服务器缓存控制头设置会传递给CDN,所以会传递给浏览器。
CDN可以单独设置控制头,如果没有静态化插件,或插件里没有设置,那么可以在CDN中设置。但是我在阿里云CDN中无法对各种资源分开设置控制头;这样就无法设置不缓存页面,或者只能设置页面不加速;这是我发现插件最大的好处。看教程也可以直接用代码设置不同类型资源的控制头,但我没有试过。
据网上教程说,缓存标记里的public是默认项,只要设置了max-age就默认了有public,所以设置时写不写无所谓。
CDN设置
W3设置的缓存标头在CDN没有设置标头时会传递给CDN,当CDN设置时CDN的设置优先级高于W3的,同样也高于源站用其他方式设置的浏览器缓存时间。
我在W3中对媒体库的缓存标头设置没有成功,刚好CDN中的媒体是单独域名,所以在CDN中配置缓存标头,这是一个思路。
gzip可以设置在服务器,可以设置在W3,也可以设置在CDN上,但我觉得设置在服务器上比设置在CDN上速度更快。另外压缩过的图片,比如100K左右的jpg,webp等没有必要开启gzip,开了反而更慢。
其他CDN设置和W3没有关系,所以就不多说了。







31 条评论