说起 CDN 来,很多博客站长们应该都很熟悉吧,但是要说到用好 CDN 可能很多站长们就不见得一定那么自信了!明月自从前年开始使用 CDN 以来也是不断的折腾来折腾去的,可以说能叫上名字的国内 CDN 几乎都用个遍了!
今天明月就结合自己的经验给大家讲解一下“如何用好 CDN 加速”,所谓的“用好”其实就是指真正的起到加速的作用,无论是前端的用户访问还是服务器端的稳定运行。 CDN 的核心思想就是“动静分离”, WordPress 大家都知道,这是一个“动态”的网站平台,如何让 CDN 只缓存加速 WordPress 的静态文件就是最关键的。
至此,大家就明白了, CDN 加速其实就是把服务器上的静态文件都放到 CDN 各个节点上面,然后用户访问的时候, CDN 会分配一个离用户最近节点给用户访问,这样就达到了提速的效果。比如:明月是南阳的,当访问一个采用了 CDN 加速的站点的时候,就会给我分配一个洛阳的 CDN 节点来调用站点相关的静态文件,这样当然比到网站服务器所在地上海去调用要高效的多了。
那么我们在部署 CDN 的时候只需要做到下面几点就可以了:
1、只让 CDN 获取站点的静态文件资源,也就是缓存规则里要指明只缓存静态文件,因为这类静态文件一般都不会频繁的修改,所以建议缓存时间可以设定长一些,一般7天为宜。
2、 WordPress 站点一定要开启“伪静态化”,也就是让 WordPress 呈现的网页最好是 .html 文件。
3、服务器端要保证对 CDN 节点是开放的,也就是要将 CDN 节点IP加入到服务器防火墙“白名单”里,否则 CDN 会频繁的回源服务器(造成这个主要原因就是服务器防火墙有时候会把 CDN 节点给拦截掉,所以加到“白名单”就可以规避这个问题了),造成服务器负载增加甚至宕机被关停。
很多站长们在部署 CDN 的时候都是做到了前两条,忽略了最后一条,虽然有的时候也是可以正常使用的,但是一旦 CDN 某个节点出现运算错误频繁回源就会出现服务器负载瞬间加大。如果是虚拟主机的话就会被运营商关停(比如万网的虚拟主机等),同时还会在 CDN 后台的统计里出现回源率高的现象也就是 CDN 缓存命中率奇低的问题。只要做到上述三点基本上你的 CDN 部署已经是成功的了,剩下的就是让 CDN 慢慢的来根据用户访问情况自动缓存即可,CDN 用的越久其加速表现越好就在这里,只有用户访问请求的 CDN 才会让节点去调用服务器上的资源。这些资源在节点上保存的越多,CDN 缓存命中率就越高,加速效果也就越明显。
关于最后一条里提到的[将 CDN 节点IP加入到服务器防火墙“白名单”里],这点对于使用“虚拟主机”的站点是需要服务器管理员来操作的,一般为了安全考虑都不愿给添加的,这个目前明月也没有很好的办法。
至于说使用 ECS 类云主机的必须自己手动的来添加了,但是,添加之前一定要搞清楚自己的 ECS 主机使用的默认防火墙是什么以及如何使用等等问题,明月建议是使用 Linux 默认的 iptables 作为你服务器的默认防火墙,因为 iptables 实在是太强大了,好处很多。但这些需要你具备一定的 Linux 命令行操作的基本知识的,当然大家也可以借助“百度、谷歌”来搜索到众多的相关教程,虽然这些看似很复杂,但是要记得“一次折腾、受用终生”哦。
因为各个 CDN 服务商的IP节点都不相同,为了方便大家导入到防火墙“白名单”,明月就将自己长久以来收集整理的各个主流 CDN 服务商的 CDN 节点导入 sh 脚本文件分享给大家,这些节点IP都是官方公开的保证安全有效的,当然,官方后续的更新大家可以咨询各个 CDN 服务商的在线客服获取后用文本编辑软件替换就可以了。
大家可以根据自己使用的 CDN 来选择对应的 .sh 文件的,文件名我都是用的拼音,自己判断选择吧。.sh 下载后可以通过 FTP 上传到网站根目录里,在 Linux 控制终端里通过命令:sh xxxxx.sh 来运行导入的。具体使用方法,我就不多做赘述了,大家自己百度学习吧。
本教程对于 HTTPS 的 CDN 加速同样是适用的,明月自己就一直是这样来部署 CDN 使用的,都是经过实践的哦!重点和难点其实就是 Linux 控制台终端上的命令行操作以及 iptables 的规则保存、修改、启用这些,这些网上又很多相关教程,大家自行百度“脑补”吧。ECS 主机一般都是用 CentOS 作为主要操作系统的,大家可以参考【CentOS 7.0关闭默认防火墙启用iptables防火墙】一文里的方法来启用 iptables 防火墙。我能帮你的也就这些了,具体的大家多“百度或者谷歌”一下吧。