泽拉の避风港

末世纪元第200年

0%

利用Hexo+GitHub+Cloudflare搭建静态网站

以后的路上,不必强迫而顺然。

搭建一个属于自己的博客是我一直想做的,以前尝试直接用GitHub Pages搭建,但是单纯访问readme文档都卡的要死,最近发现Hexo搭建的很方便,Cloudflare也能加速访问GitHub Pages,自己在中间踩了很多坑,故写在这里防止其他人走不必要的弯路...

准备工作

Hexo

Hexo是一款基于Node.js的静态博客框架,可以方便地生成静态网页挂载在GitHub和Heroku上,是搭建博客的首选框架,这里我们就选用Hexo来搭建。 需要准备的软件

1
2
Git: https://git-scm.com/
Node.js: http://nodejs.cn/
准备在本地搭建博客的文件夹中右键选择"Git bash here",当然在地址栏中键入cmd也是可以的。 进入窗口后输入命令:
1
2
3
4
5
$ npm intstall hexo-cli -g
$ hexo init blog
$ cd blog
$ npm install
$ hexo server
完成以上工作后访问http://localhost:4000就能看到已经搭建的本地博客,其中主题为默认主题landscape。 你可以通过查询Hexo命令来进行文章发布的操作,也可以通过修改_config.yml来进行设置主题等操作,这些在官网都有相关文档。

CloudFlare

1
CloudFlare官网:https://cloudflare.com/

Cloudflare能提供安全服务和加速代理,所以这里选用Cloudflare加速Github Pages。

获取Cloudflare账号

注册即可。

在Pages界面里绑定Github账号,设置对应库即可,免费版每天boundle访问次数有10w,作为静态网站(如个人博客)再合适不过。

Gitub Pages

你肯定需要一个平台来承载你的静态网站内容,这里建议用GitHub而不是Gitee,虽然Gitee是国内服务器访问速度快,但是安全性无法保证,当然,你也可以考虑用Gitee+Hexo来构建你的个人网站。

优点:免备案,搭建简单。缺点:访问慢,所以要加速,会繁琐一些。

新建GitHub仓库

我们在完成Hexo的本地部署后,要连接Git以方便我们进行快速便捷地修改上传博客到Gitub上。我们要先在GitHub上新建一个库,库的名字为用户名.github.io(如200git.github.io)。

将库和本地文件夹绑定

生成SSH-keys,首先检查ssh完整性,在本地任意文件夹位置处Git bash,随后输入ssh以检查是否安装ssh,然后在命令框中输入:

1
$ ssh-keygen -t rsa -C "注册Github时使用的邮件地址"
然后敲四次回车。(有可能是三次,我忘了。

随后输入:

1
$ cat ~/.ssh/id_rsa.pub
并将输出内容复制到Github设置中的SSH key框中,title无特殊要求可随意起名。注意id_rsa私钥不能泄露,而id_rsa.pub是公钥所以可以提供或分享。

最后测试ssh是否绑定成功:

1
$ ssh -T git@github.com
到这一步我们就完成了本地库和GitHub远程库绑定啦~

随后确定用户名和邮箱:

1
2
$ git config --global user.name "你的用户名"
$ git config --global user.email "你的邮箱地址"
然后在本地博客的文件夹下修改_config.yml,补充配置文件最后的deploy部分,具体内容如下:(留意冒号后边的空格!!没有空格会报错!!)
1
2
3
4
deploy:
type: git
repository: 你刚才创建的Github地址
branch: main
修改配置文件保存后,在博客文件夹下Git bash,安装hexo-deployer-git
1
$ npm intstall hexo-deployer-git --save
然后生成网页:
1
$ hexo g
部署网页到GitHub远程库:
1
$ hexo d
然后我们就可以通过GitHub或者Cloudflare提供的多级地址来访问我们的静态网页啦~ (如果你遇到输入密码或者输入令牌的提示语句,你可以通过查百度的方法来解决,比我讲的细致多了)

域名(可选)

这可不是推销啊,域名的选择是自己决定的!!!

使用GitHub或者Cloudflare所给的多级地址访问可能记起来过于繁琐(我的笨脑子应该记不下来),所以有一个便捷访问又具有个性的域名是一个不错的选择。 申请域名的地方很多很多,可以选择阿里云、腾讯云之类的,新用户还有优惠!(比如我这个域名zeratemi.fun一年也就9块钱,首年1.29元,而且fun也意为快乐~ ^ ^

这里以腾讯云为例,腾讯云会分配免费的DNS来解析域名,但如果我们要使用Coudflare来代理加速我们的网页,我们就要用Cloudflare提供的名称服务器来作为DNS解析,而具体的设置流程,都能在对应官网找到解答办法,这里不多赘述。 修改名称服务器的审核可能需要一段时间,这和平台本身有关,但我估计最慢也不会超过1小时,当Cloudflare处检查名称服务器通过时,会发送邮件来提醒你名称服务器已经修改成功。并且再三强调,一定一定一定要等Cloudflare检查通过冒绿色对勾了再检查域名,否则再怎么看也是卡到host处。

博客文章

Hexo的文章使用的语言是轻量化标记语言Markdown,这种语言很好上手的,表现起来也很方便,教程网上都有,看一遍学会满足基本需求的部分就行。

放一首喜欢的歌,我觉得很好听。