Picture of the author

个人博客的再次搭建
2020-02-21
记录了搭建一个全新博客的过程...

很早之前搭了两个博客,一个是用hexo,一个是自建技术但都成了半成品,废弃了,很多之前写的文章现在看来也是很幼稚,当时的技术栈很不全面,以一个刚入门前端的学徒码了很多错误又狭义的文章,现在这些都存档到了有道云中了,哪天想起来可能去翻一下。经过几年的沉淀,期间也是没有多少时间学习(要陪老婆和宝宝,其实也没陪多少时间),从现在看来从一个非科班又大龄的半途出家的程序员👩‍💻到现在对整个计算机系统有了一点认识,虽然不深,但也不至于迷失了方向。写这篇文档的目的也是希望重新出发,后几年一步一个脚印,再走的踏实一点。

新博客用了阿里云,速度也上去了很多,这篇文章就从最基础的服务器购买开始,一点一滴的记录整个过程(只有文字,没有代码)。

ecs的配置

很早之前买过阿里云,又换到了腾讯云,用的都是包年,但是带宽计费用的固定带宽,1、2M的小水管,虽然上了CDN但是不知道什么原因,时不时回源,导致速度很不正常。这次索性用了按照使用流量来计费,哪怕偶尔回源也快,而且本身博客就是个人玩具,更像是个demo,也没有什么访问流量。然后装了centos8.0, 马上装了个nginx试了下,哪怕不上CDN, 80M的带宽速度也是杠杠的。当时真是应该多试几个方案,也不至于傻傻的一直用着小水管的玩具。

服务器配置

买好了服务器自然要先配置,先装软件,zsh、omyzsh、nginx、node、docker,tmux、yum的改成淘宝的源。然后把ssh密码登录给去了,直接用密钥登录,安全一点。建博客还要把安全组设定好,对外只提供80端口,用nginx对代理,(nginx的简单配置再另一篇文章里面说)。这里大概说一下大概的一个开发流程,本地vscode 开发blog仓库,另外有一些操作,例如github,CD流程的开发在服务器上,不再例外建仓库开发了,可以用vscode的remote开发模式,直接ssh连到服务器上,就像在本地开发一样便捷,而且假如不再本地用电脑开发,任何客户端,包括手机都可以直接连上开发,而且环境是已经搭好了的,用vim、emacs都是可以的。由于时间有限,还是没有调通如何通过ssh 服务器的docker来开发,暂时用服务器的环境。

博客程序的开发

由于平时工作中用vue更多点,但是本人更喜欢react(vue3.0还没出来前,3.0出来后估计也会大概率还是喜欢react多点,因为react reconciler),于是就用了gatsby这样一个静态网站的生成器。用了之后几点特性非常喜欢,第一点,数据源用的是GraphQL, 这让一个博客系统变得很简单,只要本地写好markdown,直接由脚手架生成,而且各种配置,和其他的数据源都由GraphQL统一管理,一切变得非常简单。第二点, 真假服务器渲染,原来我认为的服务器渲染必须要node服务, 因为用了markdown作为源,gatsby的直接生成静态文件,这难道不是另一种ssr吗(可能这里的理解有问题大雾),当然gatsby确实也支持服务器渲染,增加一个配置就好了。但是由于生成的静态文件对我也是足够了。 博客仓库本地开发,然后发布到github上,github有CI,CD,当代码更新后,先做一下测试,跑一下构建,如果没有问题直接用github action给服务器发一个webhook,服务器直接拉github代码下来,用pm2来部署,并且logrotate分割日志。这时博客暂时的部署流程,以后可能会改进,跑在docker里面隔离环境。

服务器的增值用法

当然买了一个服务器不能就搭一个博客使用,例如运行一些定时任务,做一点抓包,或者平时可能有一些填表格的需求(这次的新冠肺炎,每天都要填好几个网页的统计),这时我就用puppetter来自动化做点填表格的事情,每天定时跑一下,也是很爽的事情