前言

打开网站显示如下,所有图片都无法加载,但是js脚本和css都能正常渲染,一开始以为是图床出问题了,在阿里云的OSS打开图片也无法显示,是一个加载错误的图标。后面才想起可能是证书出问题了,因为浏览器打开网站显示连接不安全,而OSS和网站都配置了SSL证书,之前WordPress网站配置证书的时候有效期只有90天,转到阿里云申请的免费证书有效期也只有90天。

显示页面

更新证书后网站连接才显示正常,否则会有一个红色的×

更新证书

阿里云更换SSL证书

申请SSL证书

在阿里云的数字证书管理服务申请证书,进入个人测试证书

步骤一

填写使用SSL证书的域名,这里需要注意一下,图床使用的域名是statics.liuhengfeng.xyz,之前申请证书的时候我没注意,填写的是static.liuhengfeng.xyz,少了一个s,导致部署证书时无法匹配到已有域名从而导致部署失败,我使用了两张证书,一张给statics.liuhengfeng.xyz,另一张给liuhengfeng.xyzwww.liuhengfeng.xyz

步骤二

申请成功之后如下图所示

SSL申请成功

部署证书

申请完成后,选择右侧的部署,把证书部署到相应的云产品上,我两个证书一个部署到对象存储OSS上,一个部署到CDN上

部署证书

部署之后可以在CDN控制台看到证书的相关信息,既可以自动匹配证书,也可以自定义上传证书

证书信息

下载证书需要在SSL证书管理页面点击右边的更多,然后选择下载,选择Nginx类型,然后手动上传到相应的服务上即可

下载证书-1

下载证书-2

CDN配置(不完全正确)

CDN具体配置信息如下,现在使用www.liuhengfeng.xyz访问网站能使用CDN进行加速,访问图片时也能使用CDN缓存,但是如果使用liuhengfeng.xyz访问网站能进行加速吗?

1

2

冲突信息

CDN配置正确流程

1.进入github pages仓库(2819685584.github.io),点击设置进入github pages,填写自定义域名为www.liuhengfeng.xyz,之前用的是根域名liuhengfeng.xyz,但是现在还是带个www前缀吧

把hexo源码的G:\hexo\source\CNAME内容只保留www.liuhengfeng.xyz,去掉了liuhengfeng.xyz,原来是这样的,虽然不知道这样有没有必要

1
2
3
4
5
6
# 更新前
liuhengfeng.xyz
www.liuhengfeng.xyz

# 更新后
www.liuhengfeng.xyz

github设置

2.去阿里云的云解析DNS里面,把之前的所有CNAMEA、AAAA记录都删掉,只保留一些基本的TXT记录,如果不删档这些记录,后面会和配置CDN的源站发生冲突

云解析DNS

3.配置CDN,设置加速域名为www.liuhengfeng.xyz,源站类型选择IP,然后添加上GitHub Pages的IP地址(它会识别www.liuhengfeng.xyz才是我的GitHub Pages,才会消耗流量)

CDN配置

4.设置回源配置

回源设置

5.在云解析DNS添加CDN的CNAME,我这里把www@的CNAME都添加为CDN的CNAME,也就是说,无论我通过www.liuhengfeng.xyz还是liuhengfeng.xyz来访问网站,都能使用阿里云的CDN加速,这样就不用纠结两个URL使用其中一个没有CDN加速效果了

添加CDN-CNAME

6.验证效果,通过nslookup命令查看,可以看到域名别名变为了阿里云的CDN域名

效果

在搜索了中输入www.liuhengfeng.xyz并不会显示www,但是实际上是通过www.liuhengfeng.xzy来访问网站的,把地址复制下来发现www是包含在URL中的,就行输入www.baidu.com,实际显示的是baidu.com

URL信息

CDN知识点

源站地址 表示 GitHub 的服务器IP地址,而 回源HOST 表示要去源站地址找哪个站点,一台服务器(一个IP)可以有很多个站点(网站),而我们在 Github 上绑定了自定义域名,用自定义的域名就可以在 Github 的服务器上找到我们的站点了,所以默认回源HOST地址填写为www.liuhengfeng.xyz

回源host

回源host也可以说是回源域名,比如源站(服务器)拥有多个站点:bbs.yeruchimei.top、blog.yeruchimei.top、api.yeruchimei.top,那回源host就是指定到哪个站点上获取资源,具体详情参考以下几个示例。

示例一:

源站类型:自有源

源站地址:115.115.115.115

回源host:blog.yeruchimei.top

当CDN回源时,会到115.115.115.115这台主机上的blog.yeruchimei.top站点拉取资源。

示例二:

源站类型:自有源

源站地址:115.115.115.115

回源host:api.yeruchimei.top

当CDN回源时,会到115.115.115.115这台主机上的api.yeruchimei.top站点拉取资源。

注意:如果填写的回源host在源站上不存在时,则会到源站上的默认站点拉取资源。

建议:当源站拥有多个站点时,一定要选择正确的域名,否则CDN拉取到的资源可能不是你想要的。

加速域名

加速域名是接入服务商cdn的域名,例如使用www.yeruchimei.top域名接入CDN,那么加速域名就是www.yeruchimei.top

源站地址

顾名思义,就是用户的源站主机地址,腾讯云的源站地址有两种类型:自有源和cos源。

当选择自有源时,源站地址也有两种类型:域名(一个)和IP地址(可多个),并且都支持端口。

示例一:

源站类型:自有源

源站地址:115.115.115.115

示例二:

源站类型:自有源

源站地址:115.115.115.115:8080

示例三:

源站类型:自有源

源站地址:source.yeruchimei.top

示例四:

源站类型:自有源

源站地址:source.yeruchimei.top:8080

源站地址填写为域名最大的好处是,当你的源站拥有多个运营商的IP,例如source.yeruchimei.top有三个A记录,分别是100.100.100.100(电信)、101.101.101.101(联通)、102.102.102.102(移动),那么当CDN回源时,会根据用户的来源运营商选择对应的A记录。当访问者为电信用户,回源时则会选择100.100.100.100(电信)来回源,这样就可以避免跨运营商回源,造成回源延迟等问题。

注意:如果源站地址填写为域名时,此域名的作用仅仅是用于DNS解析,例如source.yeruchimei.top对应的A记录为100.100.100.100,那最终源站地址则是100.100.100.100。

建议:能选择源站地址为域名最好是选择为域名。

参考文章

Github Page 个人主页——CDN加速

总结

  • 学习了如何为GitHub Pages配置CDN加速
  • 加深了对DNS知识的理解
  • 要记得及时更换SSL证书(90天),不知道阿里云的证书能不能延期,之前宝塔提供的证书在到达有效期之前是能够自行延长有效时间的
  • 阿里云每年提供20张免费SSL个人证书,超过了就要付费了,一张有效90天,每年都会更新证书数量(不知道是不是每年一月一日更新),我应该用不到这么多,毕竟我只使用三个域名(statics、www、@)