目录

    从最开始写博客至今,已经过去四、五年。我写博客的初衷是记录、思考、整理,给自己看更多一点,如果能帮上其他人就更好了。从最开始的 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 直接部署的方案。