WordPress站点动静态分离与CDN配置

小型站点或个人项目最经常遇到的一个问题就是带宽不够。纯文字的页面在低带宽条件下体验尚可,但是当遇到图片较多,甚至有插入音视频的多媒体页面或者个人项目需要提供下载服务时,低带宽下的那个速度真就可以用惨不忍睹来形容。

提高带宽确实是一个好方法,但是带宽的价格真的就……温暖人心。高额的费用对于小型站点和个人项目来说是非常不合适的。

在此情况下,CDN(Content Delivery Network,即内容分发网络)就是一个非常不错的选择。将静态资源(譬如图像、音视频、页面js文件等)挂载至CDN上,可以有效地减轻站点的带宽负担,加快网络访问速度,最主要的是,相比于提升带宽的费用,CDN的价格真的太厚道了。同时,很多云服务提供商比如腾讯云等每个月会提供一定的免费CDN流量,对于小型站点或者刚起步的个人项目几乎可以说是免费。

关于CDN具体的实现原理,本文不进行赘述,感兴趣的可以从以下链接获取相关信息:

https://cloud.tencent.com/developer/news/358957

https://yq.aliyun.com/articles/104041

CDN的优点确实有很多,但是实际上使用的时候还是需要注意一些地方。比如上文就提到了“静态资源”这个概念,对应的也就会有“动态资源”的说法。以一个网站为例,网站的html和js文件,用到的图片等等,都是静态资源,它们除非被人为的进行修改,否则是不会发生变化的。对应的,网站中通过php、asp等方式实现的内容,比如动态的日志系统等等,这些是动态资源,需要服务器后台进行解析处理的,是会实时变化的。

在配置CDN的时候,如果只是简单的将整个站点挂上CDN,那么可能就会开始发生很多诡异的情况,比如通过日志系统发布的日志在主页没有更新出来,登入登出系统失效等等。因此,又有了一个概念,即动静态分离或叫动静分离。如同字面意思,其核心就是讲网站按照动静态资源的标准进行区分,将静态的资源挂上CDN,动态的资源直接访问源网站。这样就可以避免发生上述的种种诡异情况。

下面以WordPress站点为例,介绍具体的动静态分离方法与CDN配置。

一般来说CDN是按照域名来进行加速的,因此需要挂载CDN的资源应当放在一个新的域名下,与存放动态资源的主站区分开来。简单来说,我们需要做的就是添加一个新域名(一般来说是二级域名)→将站点动静态资源分开,静态资源放置在新域名下→给新域名配置CDN

我们先进入腾讯云的内容分发网络功能页面中的域名管理,添加新域名。在域名一栏填入作为CDN加速站点的域名,业务类型选择静态加速。源站笔者由于有自己的VPS而且带宽也还差不多,因此就选择了自有源站(注意,对应服务器上也要新建一个站点才可以),否则可以使用COS来创建CDN。回源协议由于笔者站点已配置好SSL证书,故选择协议跟随。

服务配置这里的配置比较关键,会直接影响CDN的加速效果。先简单的说一下内容和刷新时间的概念,腾讯云这里的内容即指影响的文件类型,php等动态资源配置为0即不进行缓存,其他资源配置30天则意味着缓存每隔30天刷新一次(注意,新添加的资源在请求时CDN会重新获取,不会出现文件不存在的情况),下面的配置优先级高于上面,即目前的配置是“除了动态文件以外的文件30天刷新一次”。刷新时间这个值不应配置太低,太低CDN会频繁的从源站请求资源,造成访问不通畅也起不到加速的效果。

确认提交后,回到域名管理,复制下图中CNAME栏中的地址。然后到域名解析中添加新的记录,类型选择CNAME,记录值填写刚刚复制的地址,实现对应的解析,即完成了CDN的简单配置。

目前来说,CDN已经能够正常工作了,不过还有很多特殊的配置可以进行修改。我们回到CDN的配置页面,在刚刚配置好的那一项的最后找到管理,进入对应的管理页面。切换到访问控制,把防盗链打开,填入会用到CDN加速资源的站点地址,可以搭配通配符。这样可以有效避免CDN上的资源被他人盗用,比如说CDN上可能存放了音乐文件被别的站点拿去当背景音乐或者图片被别的站点直接盗用,这样最后走的是我们自己的流量和费用了……

然后切到高级配置页,带宽封顶打开,该选项可以一定程度上避免DDOS攻击和恶意的CDN流量消耗。超出阈值可以设置为访问回源,即超出阈值了直接跳转到源站点;也可以选择返回404。HTTPS视情况配置。

至此CDN部分配置基本完成,下面就是WordPress的配置部分。

首先复制WordPress站点目录下的wp-content和wp-includes文件夹,删除不需要的部分,部署至CDN加速域名下。然后给WordPress安装WP Super Cache插件,这个插件可以重写WordPress中的部分地址至CDN来实现利用CDN加速。

安装完毕后,切换到通用页,先把缓存功能打开;然后切到CDN页,勾选“开启CDN支持”。站点地址处填写主站点的地址,off-site URL填写CDN加速站点的地址,其余配置不动,保存即可。

此时所有配置均已完成,打开浏览器的调试功能,打开主站,观察网络请求中的内容,如果图片、js文件的请求URL域名是配置好的CDN域名和主站的域名不是同一个,即说明WordPress配置CDN成功。

由于个人能力有限,文中难免会出现疏漏或错误,还望见谅。

发表回复

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