从最开始写博客至今,已经过去四、五年。我写博客的初衷是记录、思考、整理,给自己看更多一点,如果能帮上其他人就更好了。从最开始的 csdn ,到使用 Ghost 在 Linode 部署,再到 Pages 托管,最后落脚在 CDN 上。起初是为了能专心写,而后是希望通过一个网站了解更多技术细节,最后回归初心,只为能专心写内容。
1. CSDN 博客
无论是写博客,还是检索问题,我们都无法避开第三方博客。国内常见的第三方博客有 csdn、cblogs、lofter 等,国外的有 wordpress、blogger 等。第三方博客的特点是:
- 零成本。不需要购买域名、服务器等资源。
- 零维护。不需要维护服务器。
- 零推广。平台会将优秀的内容推荐给用户。借助第三方高权重域名,内容很快被搜索引擎收录,排名靠前。
从印象笔记迁移到 csdn 之后,整理和记录的笔记质量提升了很多。以前只是随手粘贴、复制的内容,开始逐渐变得条理清晰了一些。
2. Ghost 独立部署
在 csdn 上持续更新了一段时间之后,恰逢我正在学习网站技术。于是,萌生了独立部署博客的想法。自己动手从零开始独立部署博客,可以学习到很多东西。从 VPS 开始了解阿里云、Linode、DigitalOcean 等; 从购买域名,开始了解如何选域名、域名的买卖、抢注域名、域名的解析、SEO 等; 从博客软件,开始了解到 WordPress 、Ghost 等;从登陆服务器,开始了解到运维;从部署,开始了解到 Nginx、MySQL 等; 从图床,开始了解七牛、又拍等。除了自己独立部署,我还了解到一些一站式平台,例如,OpenShift。这也是我最早接触的 PaaS 平台。下面是我的部署方案图:
3. Git Pages 托管
独立部署博客,需要购买域名、服务器等资源,每年是一笔额外的开销。同时,博客不是异地多活、高性能、高可用。于是,我选用了一种比较程序员的方式: Git Pages。GitHub、GitLab、Bitbucket 等,都提供了免费的静态页面托管服务,称之为 Pages 。利用 Pages 服务,可以发布文档、博客等。以 GitHub 为例,通常只需要简单几个步骤,就可以使用 Pages:新建一个项目:[username].github.io提交静态 html 文件访问 [username].github.io,也可以绑定自己的域名进行访问。如果你想要使用 Markdown 编辑文档,那么就需要借助 Jekyll、Hexo 等静态页面生成工具。更多 Git 技巧请参考: 你不知道的 Git 使用技巧这里我选用的是 Hexo,主要原因是 Hexo 基于 Nodejs,而 Jekyll 基于 Ruby,安装 Hexo 运行环境更方便。下面是我的部署方案图:最后,将博客全部迁移到了 Hexo 。参考文章:如何将博客从 Ghost 迁移到 Hexo
4. CDN
采用 DNS 进行负载均衡,国内使用 coding.me,国外使用 gitlab.io,是一个不错的异地多活方案。但是这两个 Pages 服务都不稳定,而且慢。coding.me 的 Pages 服务,时不时就抽风一次,十几秒都打不开页面。gitlab.io 在国内访问体验不好,gitlab.com 都出现过服务中断,一直只是作为备份提供服务。由于 Pages 服务通常是免费的,提供商没有很强的意愿优化,改善体验。实际上,博客和文档类型的网站,通常都是以静态内容为主。网站中的静态内容,如 JS、CSS、图片等资源,我们通常都会放在 CDN 上。由此,我决定将静态 HTML 页面也放在 CDN 上,充分利用 CDN 的边缘节点,就近响应页面访问请求。CDN 提供商仅提供一定数量的 HTTP 免费流量,而我的主站采用的是 HTTPS。但网站每个页面大小不到 10 KB ,每个月仅增加几元钱的流量开销,就能获得访问速度很快的服务已经非常值了。下面是我的部署方案图:另外一种方式是利用 CDN 的镜像加速功能,将原来的网站镜像到 CDN,以 CDN 作为访问的入口。相较于直接使用 CDN 部署,这种方式改造少,但原来的网站一旦挂了也会影响到整个服务。最终,我还是选择了更简单的 CDN 直接部署的方案。