从零开始的博客搭建指北-篇一:准备工作
前言
详见我的上一篇文章
为什么说是“几乎”呢?我是第一次接触Node.js和Hexo这个博客框架,但是对Linux有一定的了解,也使用过Github和一些Serverless平台;因此,本文不会特意讲解Linux命令行的使用方法以及各类平台账号的注册方法,有需要的读者可自行了解。
同时为了避免这一系列成为官方文档的精简版本,文章会讲述我在部署时遇到的一些问题和解决方法,希望能给你一定的参考。同时本文中的一些配置是我一杯茶一包烟一个小参调一天调出来的认为的比较优雅美观的配置,可能不适合你,也请注意。
本文适用于Linux平台,Windows平台的可以看看这位大佬的文章(不过两个平台差别不大,尤其是Github和Severless平台的部分)
框架选择
目前市面上有很多开源的博客框架,强大到白宫官网都在用的Wordpress,小巧到代码量只有400KB的Typecho,接下来讲讲我将几个选项排除的理由:
- Wordpress:可以说是全球范围内使用量最大的网站框架,但用作一个纯静态博客则显得过于庞大与繁琐(需要一台服务器和LNMP全家桶),PASS
- Typecho:十分轻量的开源博客框架,但与Wordpress类似,也需要服务器+LNMP环境,PASS
- Hugo:使用go语言编写而成,拥有极快的构建速度,支持Serverless平台部署。但是偏小众,相关的资源与插件不是很多,同时Hugo是一个网站框架而非一个博客框架,因此也被PASS
其实Hugo也是一个相当不错的选择,在查阅了一些资料后我认为两者在搭建博客上可谓不相上下,同时二者都有一些对方没有的功能,使用Hexo而非Hugo的最主要原因可能是因为我是先了解的Hexo,等我开始了解Hugo的时候我已经把Hexo安装完了……
最终我选择了Hexo,它使用Node.js编写而成,拥有丰富的插件与主题,同时完美支持Serverless平台部署。最重要的是,它的部署流程相对简单,因此你可以把大部分时间花在撰写文章而不是网站的配置与维护上。
Serverless平台选择
Serverless Computing(无服务器计算)是一种基于云的计算模式,在这种模式下,开发者无需管理服务器即可部署和运行应用程序。它允许开发者和企业快速、灵活地构建应用程序,而不需要担心服务器的维护和管理。
对于一个静态博客来说,部署在Serverless平台上是一个很好的选择。你可以将Hexo生成的静态文件(或是源代码)交给这些平台,平台会自动帮你构建出网页,而你只需刷新一下就可以看见自己写的文章,在易用性上做到了极致。此外,大部分国外的Serverless平台都提供了慷慨的免费计划,以下表格对比了四家较为知名的平台在免费计划下提供的服务以及可访问性上的一些差异。
可访问性均在晚高峰时间测试
Github Pages | Cloudflare Pages | Vercel | Netlify | |
---|---|---|---|---|
文件 | 50MB每个,总共1GB | 25MB每个,最多20000个 | 总共100MB | 100MB每个,最多54000个 |
每月流量 | 100GB | 无限 | 100GB | 100GB |
每月构建时长 | 无限,单次小于10分钟 | 500次 | 6000分钟 | 300分钟 |
站点分析 | 无 | 有 | 无 | 无 |
默认域名可访问性 | 一般 | 较好 | 不可访问 | 较好 |
CDN供应商 | Fastly | Cloudflare | AWS | AWS |
CDN可访问性 | 一般 | 一般 | 差 | 较好 |
考虑到博客既没有备案又托管在境外,所以网站的可访问性便成为了重中之重(你也不想你的博客只有挂梯子/转圈圈几秒钟才进得去吧)。接下来请看这四家平台CDN可访问性的详细测试
测试网站:https://www.itdog.cn/http/ 未勾选港澳台地区,每个网站测试三次,取最后一次为结果,所有域名均手动补上https://以避免运营商或防火墙直接劫持HTTP流量,闪电图标代表该省份有超时的节点
作为所有平台的对比,先放一个部署在国内并且有CDN的博客的延迟
首先是赛博佛祖Cloudflare,其提供的免费计划可谓遥遥领先,但其CDN节点在大陆的可访问性只能说很一般,以下是默认域名和绑定上自定义域名后httping的测试结果
Cloudflare的CDN访问时延在全世界绝大多数地区都是低于其他CDN供应商的,中国大陆地区的体验如此之差,除了其在大陆地区无节点(只有备案+氪金才能使用京东云的合作节点)之外,也与运营商和防火墙的刻意劣化有关
接下来是Github Pages,Github Pages有着庞大的客户群体,就我看过的博客而言可能有将近一半都是放在Github Pages上的,同时也支持自定义域名。然而Fastly CDN的可访问性怎么样呢?
Vercel和Netlify两家Serverless平台本质上是AWS的套壳,使用的CDN都是AWS Cloudfront,我们先来看Vercel
两个字:拉跨。下一个
简单点评一下,Cloudflare Pages和Github Pages在流量上量大管饱,但其CDN在中国大陆的可访问性堪忧,Vercel虽然使用了AWS的CDN,但是无论是否自定义域名,IP地址均会落到 76.76.21.0/24
这个IP段内,导致其能够被精准打击,再加上AI刚火起来的那段时间有大量网友将能够调用OpenAI API的站点部署在Vercel上用于直连使用ChatGPT,使得Vercel的IP段被列为重点关照对象,最终导致其可访问性在四家平台中垫底。
部署在Vercel上的网站在关键时期还会直接跳转反诈网站,就像这样:
最终,Netlify脱颖而出,凭借着对于博客来说完全够用的免费计划以及在中国大陆极低的访问时延,成为了最优选择。
域名购买
理论上来说,由于各大Serverless平台一般都会分配一个默认域名给你的项目,不购买域名也是行得通的。但是,这些默认域名一般比较冗长和难记,另一方面,根据上面测试得到的结果,默认域名的可访问性较为堪忧。如果你想让自己的博客更有特性,同时增强其可访问性,建议购买一个域名。
而域名注册商的选择就十分繁多了,国内外的各大云服务平台基本都提供了域名注册服务,同时也有Namesilo,Namecheap,Dynadot等专门做域名售卖的平台,由于各大平台的优惠各不相同,建议多方比较后再做决定,这里说一点我的经验。
首先就是不要被某些平台的优惠价格骗了,大部分平台在首年都会给出一个十分劲爆的优惠价格,一些新注册的,还处在推广期的顶级域甚至会直接让你免费用一年(例如Dynadot几年前注册的.gay顶级域,有段时间只要注册账号就能免费选一个域名用一年),但是等到你续费的时候,域名注册商给你开出的账单绝对会让你大吃一惊的。
其次,最好不要贪便宜去用免费的域名。首先目前应该是没有免费提供二级域名(xxx.com)的平台了,提供免费域名的一般都是一些公益组织(例如十分有名的eu.org),这些组织将一些很短的二级域名开放注册,也就是说你拿到的是三级域名(xxx.eu.org)。虽然免费,但这类域名的注册几乎没有门槛,导致滥用情况普遍,不仅可能被搜索引擎降低权重,还有可能被一网打尽(参考上面提到的反诈);而且将来如果想折腾一些别的项目(例如自建邮箱),用这样的域名也会带来不小的麻烦。
以下是一些省钱的心得:
如果你想尽力省钱,只要有个域名就行,那我推荐.top域名,价格应该是所有顶级域中最便宜的之一。国内的平台可以看看阿里云万网,价格实惠,而且连续注册多年还有很大的优惠
国外的平台可以看看Namesilo,首年1.88刀续费4.88刀是我看过的国外域名注册平台中最便宜的,而且不需要实名认证就能注册
可以再去搜一下Namesilo的折扣码,叠完折扣后1刀就能拿下一个.top域名
如果你想要一个更加正式的域名,例如.com顶级域,那我强烈推荐你去Cloudflare注册,我挂一张图在这里:
注册完成后可以直接使用Cloudflare提供的一系列服务(DNS解析,免费减速CDN等等),省去了转移DNS解析服务商的功夫。唯一的缺点就是Cloudflare不支持银联和微信/支付宝,你需要一张境外卡组织发行的银行卡才能完成购买
需要注意的是,在Cloudflare平台上注册的域名是不允许更改DNS解析服务商的,不过瞅着Cloudflare平台的众多福利,这也算不上缺点
总结
至此,三个大头的准备工作就完成了,全程只有域名注册花了钱(这也是整个教程系列中唯一一个花钱的地方了)。接下来我们将会安装Hexo框架,将静态文件推送到Github,设置Netlify,配置评论系统,预计分为两篇文章推送,敬请期待。