菠菜的Hexo博客CDN加速

因为菠菜是用自己的服务器进行博客的部署,服务器带宽有限,所以最好用CDN加速来缓解一下服务器的带宽压力。但菠菜兜兜里的RMB更是有限,就只能在网络上寻找一些免费的CDN服务。

目前,市面上能够免费(有限)使用的CDN加速有百度云加速七牛云等。

百度云加速

百度云加速设置简单,在配置完成后,会自动针对符合条件的静态资源进行CDN加速,流量没有限制,还能提供简单的安全防护。

你需要到百度云加速注册一个账户之后,直接登录然后进入到管理控制台

添加网站

然后点击添加网站,输入你的域名YourDomain.com(我的是xiehaibo.cn),切换接入方式为NAME接入方式
菠菜丛林历险记
菠菜丛林历险记

  • 采用NS接入方式你需要把你的域名的DNS解析服务器设置为百度云加速的DNS服务器,而使用CNAME接入方式则只用添加相关的DNS记录即可。

添加子域名

然后添加子域名,比如我要解析blog.xiehaibo.cn,则子域名填写blog,执行填写你的服务器IP,然后点击创建。
菠菜丛林历险记

设置DNS记录

添加子域名点击下一步后,就可以看见如下几天需要添加的DNS记录,然后登录自己的域名管理控制台,添加对应的DNS记录即可,然后就等百度云检测DNS记录自动生效了(服务器在国内,没有备案的域名百度云是不提供CDN加速服务的!)。
菠菜丛林历险记

  • 需要注意的是,但是因这里需要设置www的TXT记录为指定值,但是阿里云的域名解析记录同时设置一条www的A记录和TXT记录是冲突的。所以需要解析www域名时,开始添加二级域名时先不添加www,等域名配置生效后,删除域名www的TXT记录后再添加www记录。

七牛CDN

七牛CDN的配置要灵活一些,但要求加速的域名先完成在中国大陆的ICP备案和公安网备案,而且流量有限制,认证用户每月有10G免费流量。

首先用户需要注册一个七牛账号,通过认证后就能获取10G的免费国内流量,大家还可以通过邀请的方式增加免费流量额度。大家可以点击我的邀请链接注册,也可以直接登录七牛云注册。

添加域名

登陆后在左侧选择融合CDN,然后点击新建加速域名,然后按要求填入信息
菠菜丛林历险记
菠菜丛林历险记

  • 这里你需要加速那个域名就写那个域名,比如直接写blog.xiehaibo.cn,没有特殊需求源站不填或填入加速域名。
  • IP填入你的服务器IP,然后填入可访问的资源路径,点击测试显示测试通过才能添加成功
  • 因为灵活设置缓存,这里缓存配置选择遵循源站,后面我们再在服务器配置缓存规则。

设置DNS记录

等待设置成功通过发布后,你会得到一个CNAME域名,在的域名DNS记录里面添加一条CNAME记录解析过来就行了。
菠菜丛林历险记

Nginx缓存配置

为了让我们的网站缓存更为灵活,我们让七牛CDN缓存规则遵循源站,那么我们就需要在自己服务器上设置好缓存规则。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server{
listen 80;
server_name blog.xiehaibo.cn;
charset utf-8;
index index.html;
root /opt/www/blog;
error_page 404 /404.html;
location ~ /images { #/images目录下的资源使用最大的缓存时间
expires max;
}
location ~ /(assets|css|js|lib) { #/assets、/css、/js和/lib资源缓存10天
expires 10d;
}
location /{
expires -1; #其他资源不缓存
}
}

防盗链优化

顺利完成以上步骤后,博客的七牛CDN加速就配置好了。

但是因为流量有限,万一有人盗用博客中的图片链接,流量消耗起来会很吓人,所以建议配置防盗链操作。

1.错误的做法

如图所以,在blog.xiehaibo.cn加速域名详情页点击防盗链配置,添加域名白名单,例如.xiehaibo.cn表示所有xiehaibo.cn下的二级域名都可以访问。
*注意,这还没完,请继续往下,要不就粗大事了!

菠菜丛林历险记
菠菜丛林历险记
经过这么配置后,假如你在地址栏输入自己博客任意一篇博客的链接,你会发现打不开了!!!
对,就是会打不开!!!所以这么做防盗链就会傻掉!

2.正确的做法

对blog.xiehaibo.cn域名不做防盗链处理,但是不允许通过blog.xiehaibo.cn这个域名访问图片目录。

更改Nginx配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server{
listen 80;
server_name blog.xiehaibo.cn;
charset utf-8;
index index.html;
root /opt/www/blog;
error_page 404 /404.html;
location ~ /images {
return 404; #注意这里!!!
}
location ~ /(assets|css|js|lib) { #/assets、/css、/js和/lib资源缓存10天
expires 10d;
}
location /{
expires -1; #其他资源不缓存
}
}

然后我们新建二级域名static.xiehaibo.cn,这需要在Nginx配置中增加一个server

1
2
3
4
5
6
7
8
9
10
11
12
13
14
server{
listen 80;
server_name static.xiehaibo.cn;
charset utf-8;
index index.html;
root /opt/www/blog;
location ~ /images {
expires max;
}
location /{
return 404;
}
}

然后按照之前的步骤给static.xiehaibo.cn配置CDN加速,同时配置防盗链白名单为blog.xiehaibo.cn !!!

最后,替换将博文中的/images替换为//static.xiehaibo.cn/images,大功告成!