关于网站静态化以及一些缓存和CDN加速的心得与技巧

最近在搞网站静态化,动态网页静态化能够非常明显地提升网站的访问速度,如果再有缓存和CDN加持,那么网页打开的速度基本上可以跟原生APP媲美了。今天这篇文章简单记录一下最近我在网页静态化过程中用到的一些缓存设置技巧和心得。

1.wordpress强大的缓存插件 wp super cache

这个插件太强大,所以后台设置很多人比较晕,我是这么设置的: 首先,主机支持URL重写的话,我建议选择Mod_rewrite模式,这是最快的。在高级设置部分,开启使用对象缓存系统来存储缓存文件,这一步需要提前设置好Memcache,可以看我之前写的文章《为LNMP开启Memcached内存缓存以加速网站》,如果你有多个wordpress架设在服务器上的话,你可能还需要再看看《同一台服务器上为多个wordpress网站启用Memcached缓存》。然后其他设置部分我们按照程序推荐的来就可以了。如果你的网站对互动要求不高的话,你完全可以将评论托管在第三方,现在多说已经决定关闭了,好在还有搜狐畅言和网易云跟帖可以选择,搜狐畅言我使用过,还是很给力的。在这种情况下,你可以将全站前台所有页面缓存,作为管理员更新网站的话,稍微麻烦点,手动输入后台地址登录就可以了。

CDN部分,你可以选择七牛,这个网上有很多文章,搜索一下就可以找到很多答案,我就不重复了。我建议只用七牛加速图像文件,js和css文件还是用本地的比较好。

预缓存也要开启,但不要预缓存所有文章,仅预缓存最新的几百篇就可以了,不然会给服务器造成压力。

2017-09-12 补充:如果开启了对象缓存Memcached功能,那么,预缓存是不起作用的,也就是说服务器本身不再缓存静态页面,代之的是消耗一部分内存资源的对象缓存,这是更好的缓存方案。在服务器的内存足够的情况下,我还是建议开启对象缓存,把页面静态化的工作交给百度云加速等外部服务。

至此wp super cache设置完毕,有人推荐autoptimize这个插件配合wp super cache使用,其实我觉得必要性不大,稍后我们会用到第三方的CDN加速,所以在这里就不用autoptimize了。

网站还可以装一个 lazy load 插件,让图片顺次加载,这样对带宽和服务器的压力也会降低很多。稍候,我们在百度云加速设置的时候,就不要重复设置图片懒加载了,将图片懒加载的工作交给服务器,CDN只负责缓存整个静态页面。

如果你的网站不仅仅有文章系统,还有商城这类涉及到支付的系统,那么你就不能再对前台所有页面缓存了,你得把已经登录的用户和未登录的用户区别对待。这个在wp super cache里有对应设置,已登陆用户就不能再看到缓存页面了。关于开启memcache造成网页更新不及时的问题有两个解决方案:

《强制清除Memcache中的缓存的方法》《解决memcache缓存造成的网站更新不及时的问题》 我推荐第二种方法。

站内设置现在已经完成了,既然谈到了用memcache来加速,那么,不可避免要讲到数据库的优化,关于数据库的优化知识,本站也有很多文章谈到,大家可以用站内搜索查询。

2.百度云加速

现在,我们要用到的工具是百度云加速。网上有很多文章说百度云加速越用越慢,这里我要给百度云加速正个名,百度这个服务非常地厚道,一点也没有百度一贯以来的流氓习气,只要会设置,加速效果那是杠杠滴,媲美原生APP加载速度就要靠百度云加速了。

如果要用到百度云加速的国内加速节点,域名是必须要备案的。备案后的域名修改DNS里的设置,绑定到百度云加速的管理面板。在这里我建议用CNAME方式来绑定域名,虽然稍复杂,但是自由度高一点。

百度云加速免费版有3条自定义设置规则,域名绑定之后,一定要进去设置好,这是加速的关键。我还是分纯静态设置和部分静态设置来讲。

对互动要求不高的纯静态网站很好搞,把域名后面加上一个通配符*,设置为全部都缓存,缓存时间越长越好,js,css加速全都开起来,图片延迟加载也开起来,浏览器检查关闭,然后保存就可以了。30秒之后,网站就飞起来了!

需要保留动态功能的网站就需要好好设计百度给的3条免费规则了,我建议通过页面url的设置,将大部分浏览量很高,但不常变动的页面用通配符的方式全部缓存,缓存时间可以设置很长。如果你的页面结构之前没有很好地考虑到缓存规则的话,我建议你采用301跳转的方式,重新规划一下你的页面URL结构,充分利用百度给的3条免费规则,让大多数页面缓存到百度的节点,让不得不保留动态功能的页面越少越好。

管理后台是不可以静态化的,虽然也可以通过临时关闭百度云加速的方法来进入后台,但还是蛮麻烦的,所以在通用设置里,统一采用细致缓存方式,在3条自定义规则里设置,如果还能剩下一条给到后台,那就声明一下后台不要缓存。如果免费规则用完了也没关系,只要你没有把后台地址写进缓存规则,就没事。如果你的网页URL结构实在过于复杂,那还是购买百度云加速的付费版本吧,绝对会让你满意!

这里提供几个URL设置的具体内容,供大家参考:

第一组:排除后台

  • www.abc.com/wp-admin/ (不缓存)
  • www.abc.com/* (所有都缓存)

第二组:单独设置

  • www.abc.com/x* (以x开头的URL所有都缓存,x可以自己定)
  • www.abc.com/y* (以y开头的URL所有都缓存,y可以自己定)

对于第二组设置方式,注意了,如果你希望URL带参数访问也被缓存,比如在微信中分享网页。假设你的页面URL结构是 www.abc.com/12345.html,微信会在你的页面URL后面加上 ?from=singlemessage 等参数,变成了www.abc.com/12345.html?from=singlemessage,这个时候,你可以这样设置 www.abc.com/*.html* 就是在html后面再加上一个星号,意思是带参数访问的地址也让百度缓存起来。只有经过这样的设置,你的页面在微信里分享访问也会同样飞快。

好了,基本上就这样,有网站的兄弟们可以赶快去试试吧。

One thought on “关于网站静态化以及一些缓存和CDN加速的心得与技巧

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注