最早的时候,一直在CSDN写博客,但是这毕竟是一个盈利性网站,越来越多的广告和越来越糟糕的阅读体验,让我逐渐将博客迁移到了掘金,那个时候的掘金,还是一个不错的网站,简洁,无广告,阅读体验好,是一个极佳的开发者博客平台,但是时间长了,矛盾也就很明显了,那就是这样的网站几乎没有盈利模式,所以网站的运维成本、人力成本,会逐渐将掘金拖入深渊。而且自从今年以来,各个博客平台之间的流量竞争越来越激烈,导致各平台的审核机制愈发严格,大家都需要将流量控制在自己的一亩三分地里面,有链接不能过审,有二维码不能过审,就连宣传自己的GitHub都不行,在这么严格的审查机制下,我的耐心也逐渐被消磨了。

是时候下定决心搭建自己的网站了。

现在市面上的网站平台,基本分为三种。

  • 微信公众号
  • 各种博客平台:CSDN、掘金、简书、博客园
  • 自建网站

对于开发者来说,微信公众号是一个非常好的平台,可以解决在移动端阅读技术文章的需求,但是它的缺点也很明显,那就是技术类的文章,在移动端的阅读体验,实在是太差了,而且文章很难搜索,这就决定了微信公众号,只能是在碎片时间大致了解技术文章的原理,想要深入细节,还是要在PC端进行深入阅读。

而第三方的这些博客平台呢,前面已经讲了,流量竞争这么激烈,限制越来越多,虽然使用方便,但是实在是没有耐心去一篇篇审核了。

自建网站,虽然没有这方面的限制,但是却是这几种方式里面最复杂的,不仅要服务器资源、带宽、存储资源,还要折腾各种网站框架,包括评论、统计、修改样式等等等等等。

现在的这些平台的逻辑很奇怪,一方面需要用户来产生UGC内容,一方面又不想让用户导流,就算是填个链接,放个二维码都不行,那这就很奇怪了,那我为什么要在你的平台写博客呢,为了爱吗?还是给平台免费打工呢?我对我自己创作的内容都不能引流,那我为什么要在你这里发呢?

生命在于折腾

下定决心自建网站后,首先就是要选型,就跟开发一个新功能一样,首先要理解需求,然后带着需求去选择技术方案。

市面上的自建网站大致分为下面几种。

  • WordPress等LNMP建站系统
  • 静态网站Hexo、jekyll等
  • Ghost,Nodejs技术栈的建站系统
  • 自建网站系统,即自建搭建前端界面和后端服务器

其实对于个人开发者来说,自建网站系统最为灵活,但是却最难做,毕竟各个方面都需要自己来实现,最方便的是使用WordPress这类的建站系统,全网教程最全,插件丰富,几乎可以快速实现大部分的网站需求,但是,WordPress比较臃肿,而且基于PHP技术栈,不太好听,而像Hexo、Jeklly这类的静态博客网站,可定制性又太差,所以,最终我的选择是Ghost。

可能很多人都没有听过Ghost这个建站系统,没错,Ghost确实比较小众,但是生态在国外还是比较完善的,它本身就是WordPress的前员工出来创建的,所以可以理解为WordPress的简化版,同时,基于Nodejs技术栈,至少能看懂。

官方网站:https://ghost.org/

确定好网站技术方案后,下面就是开始花钱了,首先要搭建一个云服务器,自己搭建太费时费力了,而且大部分地区的家用宽带,都封了80端口,所以家用宽带是很难搭建公网服务器的(当然,也可能是自己这方面的技术栈太浅,没找到解决方案),所以剩下的选择不多了,要么是阿里云、要么是腾讯云,其实服务没有什么太大的区别,只不过最近发现腾讯云的云服务器比阿里云便宜,所以就买了腾讯云的服务器,顺便也在腾讯云上买了域名,没错,就是——xuyisheng.top。反正便宜,一下子买了十年,人生一辈子能有几个十年,先买先得。

如果你也要购买云服务器,可以联系我获得优惠券,这里并不是推广,只是给大家多一些优惠。

有了云服务器和域名之后,剩下的,就是交给腾讯云处理了,完善域名认证,实名备案,你的个人网站,就迈出了第一步了。

个人域名认证后,需要做DNS解析,按照官方文档的说明执行就好了,唯一有一点官方写的不是很明白,那就是自己的网站域名,需要在DNS解析中绑定A类型,并记录云服务器的IP地址,这样才能正常解析。

选择Ghost自建博客有下面几个好处。

  • 发布方便,不用登陆远程服务器部署
  • 修改方便,不像CSDN、掘金这样需要审核,也不像微信公众号,修改等于发布,可以直接在后台修改
  • 不受平台限制,可以树立自己的品牌形象而不用担心被各种限制

搭建Ghost

各大云服务器的供应商早就想到了这一点,很多人买云服务器,除了商用以外,大部分自用的都是像我这样来搭建各种网站的,所以,供应商在官方文档上,做了无比详尽的说明,各种网站平台、各种架构的搭建方式,应有尽有,可以说,只要花了钱,啥都有。例如这里的Ghost博客系统,腾讯云上的文档如下所示。

https://cloud.tencent.com/document/product/213/38620

从创建实例到运行网站,每一步都很详细,这里就不需要我再重复了。当然,Ghost官网上,也有非常详尽的按照方法。

https://ghost.org/docs/install/ubuntu/

搭建其实没有任何难度,不过有几个点还是要提一下。

  • 新版本的Ghost使用Ghost-CLI来进行管理,需要一个非Root、非ghost用户名的用户来进行安装
  • 最后在配置Ghost的时候,建议勾选配置NGINX和SSL,同时URL设置为https,这样的话,新版本的Ghost可以直接配置好NGINX和全站https(默认使用Let's Encrypt)进行加密。

如果上面的过程一切顺利,现在你在浏览器中,就可以通过https域名来访问你的Ghost网站了。

https://xuyisheng.top/ghost

通过域名访问后,经过简单的配置,你就可以完成网站的配置了。

域名添加/ghost是Ghost博客默认的管理界面地址

Ghost博客,有一个简单的后台管理界面,可以管理整个站点。

这个管理后台很简单,但是基本能配置网站的全部功能,同时,Ghost还提供了完善的代码注入功能和插件,可配置性非常高。而且,Ghost还提供了非常完善的API。

所以后面不管是接入微信公众号后台还是小程序,都可以非常方便的使用博客的API,这点也是我选择Ghost的一个非常重要的原因。

最佳写作实践

之前在CSDN或者掘金写博客的时候,都是用它们提供的编辑器,这些编辑器里面用的最舒服的,还是掘金的Markdown编辑器,简洁的MD格式,复制图片直接上传掘金服务器,整个写作体验非常好,但是自建网站,就没办法了,因为现在https流量太贵,掘金的图片服务器也开启了防盗链,所以掘金服务器上的图片地址,在其它网站上是没办法访问的,其实除了掘金,其它各个平台的图片服务器基本都是这样,所以,自建网站就必须自建图片服务器,这样才能在我们自己的网站上访问,所以,又到了花钱的时候了,要么是七牛云、要么是又拍云、要么是腾讯云COS、要么是阿里云OSS,其实也都差不多,毕竟你这小水管,能有多少流量呢?

静态资源服务器建议开启防盗链,倒不是为了收紧流量,而是因为——穷(但是需要把referer设置为允许空,不然编辑器中都没法预览了)

不过这几家也有一些区别,因为我们开启了全站https,所以七牛免费的http流量就不好用了,所以在全站https下,这些供应商的https流量都是要花钱的,而花钱呢,这点小水管,其实都差不多,由于我云服务器用的腾讯云,所以这里也就选了腾讯云COS作为我网站的静态资源服务器了。

Ghost博客本身可以上传图片(默认在ghost_home/content/image/目录下),但是考虑到云服务器的带宽和性能问题,一般都会采用静态资源服务器的方案

那么有了资源服务器后,就要搭建本地的写作环境了。

其实,Ghost的后台编辑器非常智能,支持Markdown直接编写,复制图片直接粘贴上传,但是,这个编辑器有个非常麻烦的问题,那就是中文、日文、韩文等输入法的问题,在编辑的时候,首行会跳,所以非常影响中文的编辑体验,但是英文却非常流畅,社区中早就有这个bug了,但是开发者暂时还没进行修复。

https://soulteary.com/2020/01/19/bugfix-for-ghost-editor-cjk-input.html

所以本地在编辑文章的时候,还是准备采用Markdown编辑器加图片上传工具的方式来进行写作。

本地Markdown编辑器,推荐使用MacDown或者Typora,前者简洁,后者强大,考虑到需要添加图片上传工具,这里推荐使用Typora。

当然,如果你有同步笔记的需求,那么印象笔记也是可以的。

有了编辑器之后,在进行Markdown写作的时候,其实最大的麻烦就是图片,虽然我们已经有了COS来放图片,但是每次写作的时候,图一张张上传实在是太麻烦了,所以,这里需要借助一个工具来帮助我们简化图片上传的流程,这就是PicGo。

https://github.com/Molunerfinn/PicGo

这个开源的图片上传工具,支持了几乎市面上能看到的所有服务器供应商,同时,可以拖拽上传、粘贴板上传等多种方式,上传成功后,会直接在粘贴板中复制图片的地址,甚至是Markdown格式的图片地址。

同时,它还支持了插件系统,比如compress压缩功能,而Typora,可以直接集成PicGo,将图片复制进Typora的时候,自动调用PicGo执行上传,这样就打通了整个流程。

至此,一个本地Markdown写作的最佳实践诞生了。