流浪的博客

流浪,看似有一些浪漫,有些idealistic,其实也有一些无奈,看了下,距离上一篇Post ,已经有将近一年的时间了,这一年我在干嘛?

我想流浪这个词对于这一年的概括还是算作贴切的。

这一年发生了太多太多的事情。辞职,去澳洲打工度假,妈妈手术,家里修房子,疫情。 每一段都可以说很长很长的时间。

今天不想写那些,写一下这几天博客的搬迁吧。

为什么要搬迁博客

aws的免费一年试用快到期了,作为一个能省则省的抠门汉子,当然不想把这个小空间托管在每年几百块起的服务器上啦,因此只有哪里有试用就选择哪里。但是天下免费的午餐也就那么点,看之前的记录就知道,曾经用过什么免费的主机屋呀,到后来的GCP,然后到AWS,总之吧就是看哪里便宜就换哪里,这次用我姐的身份买了腾讯云的试用一年,几十块钱,还算能够接受吧。 不想花钱主要还是因为确实用不上,如果只是托管一个博客的话,真没有必要去花几百上千去弄特别好的。

架构改造

这次的改动费了点时间,主要还是懒。由于采用Nginx+ php-fpm +mysql 的架构,每次搬迁都得把数据备份,配置备份。然后就是不断的恢复,一系列操作挺麻烦的。 于是乎,我在想有没有什么工具能够比较方便的迁移呢,假如这个网站挂啦或者封了能够马上转移到一个新的主机上去呢。

其实一开始,我的想法是写一个自动配置的脚本。一键完成博客的迁移,代码并不难,后来本着不重复造轮子的思想,上网搜了搜,想到了现代运维基本都走微服务形式,容器化了,于是我又找到了一种叫docker的工具。

Docker 的思想是把应用与系统分离,开发者不再关心系统环境配置生产和开发不一致而出现各种莫名其妙的问题。和我们开发APP的思想一致。并通过组装容器,成为一个庞大的系统。说到底编程也是一种哲学思想啊。

于是乎,我有了想把博客打包成一个app的想法。让这个app可以随处运行。因为配置和数据都在容器中。

以下是我设计的架构:

放弃了虚拟机外部的nginx,改用docker中的nginx。 因为配置信息直接就放到这个nginx容器了,我把它叫BlogNginx。主要功能是负责提供web服务,之后如果有别的模块,比如python 网页也可以由它来转发。但是php默认我也安装了,因为我一般不会去开发自己的php程序。所以作为nginx的一个配置插件
它依赖于Mysql。因为有现成的嘛,我不想让这个容器做太多的内容。
为了方便更新网页内容。也许我会做一些小页面,但是利用docker来更新就优点小题大做了。因此。我安装了ftp服务端的docker容器。(主要是用来对比改动)
volume就是wordpress的网页以及需要持久化存储的数据的存放目录啦,挂载到不同的容器里面,这个才是最宝贵的。

小插曲

在折腾的过程中也遇到很多的坑,比如

php7.2 不包含mysql的模块,因此数据库链接需要另外安装php的模块了。

ftp服务器搭建好后,一直报没有权限的错误,我看权限和默认目录都配置好了呀,后来在stackoverflow 上发现别人也遇到了同样的问题。

就在刚刚发现文件上传不成功。提示不能访问磁盘。我猜十有八九是权限问题。原来我在处理ftp问题的时候chown 掉wordpress的目录到ftpuser了。所以。。。。我又把权限赋予了nginx用户,得以解决。。

总结

利用docker,可以很快的部署应用到一台新机器上面。一个命令行就能快速的运行。

但是还有一些问题,就是发现网页变得比没有用docker慢了很多。这个对于我这种小个人网页来说不算什么,但是若是小型项目来说是不可以的。

总而言之,总算利用一个新的框架搭建了一次博客,踩了一些坑,但是总算爬出来了,也学到了不同的知识。毕竟踩坑的路还有很长呢。

One Reply to “流浪的博客”

Leave a Reply

Your email address will not be published. Required fields are marked *