前言

手把手搭建个人博客系列教程-特别篇: 本节介绍几种解决Github、博客网站访问速度缓慢问题的方法
从本系列博客搭建教程开始至今,我的个人博客已经试运行了一个月,在开发过程和后续的运行阶段博客网站访问速度较慢这个问题一直没有去解决,今天我将解决此问题并将解决方案分享给诸位。


环境配置与工具准备

  • 操作系统:Windows10
  • Vercel
  • 一个域名

Github访问过慢

现象:Github能访问但很慢或在某个时段访问很慢甚至访问不了,或者干脆什么时段都访问不了,提示 无法访问此网站 www.github.com的相应时间过长
原因分析:访问慢可能是网速原因、DNS污染、浏览器缓存、服务端压力等因素导致

网速问题

  1. 首先要排除网速导致的访问缓慢情况,建议先去国内视频网站逛逛,如 B站 刷几个视频,画质调到1080P,看看视频卡不卡,缓存条走的快不快,如果播放视频都卡顿,那访问国外的Github就更卡顿了,或者直接国内都访问不了,那就看看电脑网络连接是否正常
  2. 看视频不直观的话可以直接对Github网站访问测速,推荐一个测速网站 ZHALE.ME ,搜索框中输入要测速的网站 www.github.com ,选择快速检测慢速监测,如果是下面地图上显示的全红那就是网络出问题或网站被墙了
  3. 也可以在本地控制台cmd中输入命令 ping www.github.com 看发生丢包的比例,如果全丢了那就是网络问题了

浏览器缓存问题

浏览器缓存有时候也会导致访问Github速度慢甚至访问失败,建议使用Chrome和Edge来访问,访问失败时可以尝试清理浏览器缓存或更换浏览器尝试,之前有段时间Chrome访问失败时Edge能访问,后续应该是修复了。

DNS污染

大多数访问Github慢都是这种情况。
正常情况下Github网站在测速网站中测试地图不会是全红,肯定有别的颜色,因为Github并没有像 www.google.com 这种网站一样被墙,Github在国内是可以正常访问的,只不过由于是国外网站访问速度慢一点而已。那么当确定网络没问题但就是访问慢时,就要怀疑是不是发生DNS污染了,我们通常通过修改host文件来解决DNS污染,具体如下:

  1. IP查询网站 查询Github的IP地址,复制IP地址
  2. C:\Windows\System32\drivers\etc 路径找到host文件(可以 win+r 调出运行窗口,将路径输进去后回车直接进入host文件所在目录)
  3. 在修改host文件前最好将host文件复制一份重命名作为备份
  4. 在host文件上右键点击 打开方式,选择 记事本 打开
  5. 在文件最后添加Github的DNS解析,即 20.205.243.166 www.github.com ,前面的数字是你查出来的IP地址,后面是Github网站的域名,保存后关闭文件,注意:在host文件中 # 开头表示注释此行,即以#开头的行不启用
  6. 至此应该已经解决了DNS污染,访问 www.github.com 看看速度是不是提起来了

当然如果你是不差钱党,那就当我没说,直接VPN走起彻底解决DNS污染

DNS污染是什么?首先要认识到IP地址作用,IP地址就像网站的身份证,通过IP地址就能访问网站,但是这一串数字不好记忆,因此出现域名的概念,域名相当于网站提供给用户的网站别名,通过域名也可访问网站。如何将域名和IP地址对应就要借助DNS解析服务,而DNS污染就发生在此部分。
恶意攻击者在DNS服务器部分将域名重定向到错误的IP地址就是DNS污染,github访问慢很大概率就是 github.com 启用的CDN节点遭受了DNS污染
通过修改Host文件解决DNS污染原理是:本机的host文件中的DNS解析记录优先级比DNS服务器更高,计算机通过域名访问网站时会先到host文件中查找DNS解析记录,这样就跳过了DNS污染会发生的场景

注意:在运行杀毒软件进行网络检查时,以杀毒软件 火绒 为例会提示host文件修改,如果点击修复,杀毒软件会将host文件中自己添加的DNS解析记录注释掉。当你访问Github突然又慢下来了就去看看host文件中自己添加的DNS记录是否被注释掉了,没被注释掉的话可能就是DNS记录过时了,重新按照之前的步骤去查询IP地址,然后修改DNS记录。

Github更新

进行完上述的操作后仍旧不能访问,那就可能是Github那边的问题了,可能是Github新出了什么要求,去百度上搜搜Github访问不了 查看最近一周的回答,很可能就能找到解决方案

玄学方案

当尝试过上面所有方法后访问速度仍旧不变,就可以尝试重启计算机了,这一项就属于玄学了,计算机领域圣经 重启解决99%的问题 依然适用,成功概率不大,但保不准你会成功呢!
有前人经验之谈,在西方国家晚上休息时段访问Github速度更快,因为那边服务器负载降低了,可能也有点用吧,emmm,可能。

Vercel部署

Vercel 是一个代码托管平台,它能够托管静态HTML界面,甚至能够托管你的node.js与Python服务端脚本,如果暂时没有购买服务器的意愿可以尝试Vercel部署

  1. 进入 官网 点击 Sign up 申请一个账号,跟着引导与自己的Github账号关联,这样在Vercel中就可直接查看并部署你的Github中的项目
  2. 在完成Github关联后,点击 Add new Project 创建一个项目,选择 Continue with Github ,此时就能看到Github账号下的仓库,找到之前在Github上部署的博客仓库 [用户名].github.io仓库,点击右边的 Import 导入仓库
  3. 进行项目的配置信息填写,没有特殊要求的就直接给项目起个名字后点击 Deploy ,其余选项使用默认的即可
  4. 等待一会后提示部署成功,点击 Continue to Dashboard 进入部署控制面板可以查看部署的详细信息,注意默认给出的域是访问不到自己的网站的需要绑定自己的域名,还没有域名购买意愿的可以跳过下文的域名绑定部分

域名绑定

  1. 购买自己喜欢的域名后就可以将自己的博客网站挂在域名上了,如果是采用Github Page服务,那么域名就暂时不用备案,当然如果你有服务器最好还是备个案比较好
  2. 在购买域名的服务商那里找到 域名控制台,选择 解析服务,选择添加记录,如果是一级域名,需要添加两种解析 @www,以我的域名为例,@ 对应域名为 fjsi.top 的解析,www 对应 www.fjsi.top 的解析记录,只有添加了解析记录,域名才能解析到你指定网站的IP地址上去
  3. 在Vercel控制面板右上角点击 View Domains 查看当前的域,我们可以看到仅有Vercel给你预分配的一个访问不了的域名(可能以前可以,最近好像被屏蔽了),此时我们在输入框中输入自己购买的域名,以我为例:输入fjsi.top,点击 Add 添加添加后他会提示你添加DNS解析记录,按照提示去步骤2中添加解析记录的地方将Vercel给的解析记录添加上去
  4. 添加成功后回到Vercel可以看到添加成功的提示,这时候就能直接通过自己的域名访问自己的博客网站了
  5. 最后一步:去博客项目中将在全局配置文件 _config.yml 中将 url 配置项更改为自己的域名