引言
本文属于专栏从0到1搭建一个个人网站,未阅读前序文章的读者可以从专栏跳转。
大家好啊,我是长风。
在上一篇文章利用Github Page + Hexo 搭建专属的个人网站(一)中,我们使用Github Page + Hexo搭建了个人的专属网站,并利用anzhiyu主题进行了美化,同时集成了Github Action的workflow实现在每次推送时自动部署。
但是由于某些原因,我们在国内访问搭建的博客网站时,会出现不稳定的情况。本篇我们就来使用CDN来进行访问加速。
提示:本文中相关操作需要先科学上网
原理概述
国内访问慢的原因
我们使用Github Pages部署的博客,本质上是存放在Github的服务器上的,而由于 Github Pages 部署在海外节点,中国大陆访问需要经过国际出口链路,可能存在丢包、延迟高或链路不稳定的情况。
CDN加速的原理
CDN(Content Delivery Network,内容分发网络)是一组分布在全球各地的服务器。这些服务器存储着数据的副本,因此服务器可以根据哪些服务器与用户距离最近,来满足数据的请求。
简单来讲,CDN会在全球各地的很多服务器(节点)都复制保存我们博客网站中的内容,当用户访问时,会从最近的服务器(边缘节点)给出响应,从而实现加速。
Cloudflare
Cloudflare是一家全球知名的网络基础设施和安全公司,提供很多服务,其中一项就是CDN。
要想使用Cloudflare加速,我们必须有一个自己的域名。因为Cloudflare只能针对域名进行加速,github.io并不是我们的域名,而是属于Github,我们无法对其进行加速。所以需要首先进行Github Pages的自定义域名配置。
配置Github Pages的自定义域名
购买域名
这里可以去网上找一个任意的教程,看一下如何购买域名。我这里以aliyun的域名为例进行演示。
我在阿里云上购买了一个域名changfeng.online,购买一个二级域名(如 changfeng.online)后,你拥有该域名下所有子域名的 DNS 解析控制权。所以本文以blog.changfeng.online这个子域名作为Github Pages的自定义域名。
验证域名所有权
首先,我们需要在Github上,证明该域名属于我们所有。设置路径是github首页-头像-Settings-Pages-Add a domain
在输入框中,输入你要使用的自定义域名,本文以blog.changfeng.online为例。
输入并点击Add domain后,会进入验证页面,如下图:
分别复制主机名和记录,然后打开aliyun的域名控制台。
点击添加记录,记录类型选择TXT,然后将刚才复制的主机记录和记录值分别粘贴到对应位置,这样Github就可以验证我们的域名所有权了。
输入完成后点击确定即可。
然后返回Github点击verify进行验证。
验证成功后会显示已验证。
配置自定义域名映射
同样的方式,再点击添加记录,记录类型选择CNAME,主机记录我用的是blog的子域名,所以填blog,大家可以根据自己的需求自行填写。记录值写原来的Github Pages的默认域名,即用户名.github.io,我这里写的是changfengtech.github.io。
接着我们打开博客的仓库,进入仓库的Settings-Pages-Custom domain设置。(注意是仓库的,不是个人的,要和前面的步骤区分开)。
⚠️ 注意:第一次是验证域名所有权(账号级),第二次是为某个仓库绑定域名(仓库级)。
在 Cloudflare 后台 SSL/TLS 模式建议选择 Full,以保证 HTTPS 正常工作。
输入我们要使用的自定义域名,同时切记勾选Enforce HTTPS来确保使用HTTPS加密传输,最后点击保存即可。
到这里,虽然还没有加速功能,但是已经可以用新的自定义域名来访问博客了。
可以测试一下blog.changfeng.online
配置cloudflare加速
在cloudflare官网登录后添加一个域名。
选择快速扫描DNS记录的选项,这样会把我们刚才在aliyun配置的DNS规则自动扫过来。
然后我们要按照cloudflare的提示,将aliyun我们购买的域名的DNS服务器设置为cloudflare的(以cloudflare域名配置页给出两个NS类型的DNS服务器域名为准),示例如下图:
修改完成后,此后的域名映射配置都在cloudflare中进行,域名的 DNS 解析将由 Cloudflare 接管,阿里云 DNS 配置将不再生效。
这里的小云朵变成proxied就可以了,但是需要等待一段时间才能同步到全球其他的DNS服务器。
在
Cloudflare后台SSL/TLS模式建议选择Full,以保证HTTPS正常工作。
DNS 修改后通常需要 5~30 分钟生效,全球同步可能更久。
检验代理效果
配置完成后,我们的网站就已经使用cloudflare进行CDN加速了,我们可以用Chrome Devtools的Network面板抓包验证。
当响应头中出现 cf-ray 等 Cloudflare 特有字段时,说明代理已生效。
此时,在大多数情况下可以明显改善访问体验,但稳定性仍然受国际网络环境影响。
总结
本文详细记录了如何自定义Github Pages的域名,并介绍了cloudflare的CDN加速方法,提升了国内用户访问我们搭建的个人网站的用户体验。
好了,这篇文章就到这里啦,如果对您有所帮助,欢迎点赞,收藏,分享👍👍👍。您的认可是我更新的最大动力。由于笔者水平有限,难免有疏漏不足之处,欢迎各位大佬评论区指正。
本文属于专栏从0到1搭建一个个人网站,后续会持续更新相关内容,欢迎订阅👏🏻👏🏻👏🏻
往期推荐✨✨✨
我是长风,我们下期见!