背景
我是很抗拒写各种折腾类、教程类的文字的。
但最近群里小伙伴的云服务器持续被探测扫描、数据库间歇性瘫痪,我想还是简单分享下我的思考。
对于有技术能力的人来说,可以排查问题所在,但对不懂技术的博主们,排查问题几乎摸不着头脑的。
我给他的建议是,使用静态博客生成器。
我很少去推荐别人使用什么类型的博客系统,因为个体需求差异很大,我作为一个研发工程师,很容易想当然的,把一些对于别人很复杂的动作当成很简单的样子,这可能会让我陷入“何不食肉糜”。
名词
我先用极其简陋的描述,形容静态和动态两种博客的区别。
静态
静态,其实应该叫静态生成器,它本质上是一个编译、转换工具,可以想象成一个电饭煲把生米变成熟米,米熟了之后和电饭煲就没有任何关系了。
或者理解成,美图工具把照片P完,这工具和照片就没关系了,下次再需要P图就再使用。
静态博客文件最终就是一堆html文件,你甚至可以用记事本打开直接编辑完保存即可。
把这堆html文件放到支持展示的地方即可访问,通用性、稳定性、兼容性几乎无可比拟。
静态博客生成器如:
- Hugo
- Hexo
- Vuepress
动态
动态应该叫做动态博客程序,这是一个持续运行的容器和程序,可以想象成汽车,你想使用就要一直启动,只要你熄火,那么车就无法行进了,所以要一直保持启动状态。
动态博客运行时需要服务器、数据库、缓存、博客程序本身等等,乍一看只是简单几部分,实则细究无穷。
动态博客程序如:
- WordPress
- Typecho
- Ghost
- Halo
- FarBox(托管)
- BearBlog(托管)
- Gridea(托管)
想了解更多更细节的,可以去自行查阅。
简述
人们很容易在显而易见的问题上把问题搞反。
什么人适合静态博客
- 完全不懂技术
- 只懂得一点技术
- 不愿意折腾
- 对内容丢失无法容忍
- 没钱
什么人适合动态博客
- 爱折腾
- 精通技术(包括但不限于服务器、数据库、缓存、网络、排查能力)
- 有钱
以上是不是和你的理解正好相反。
为什么
一个动态博客程序,在运行期间,是有无数种变数的,如:
- 服务器端口是否开放、防火墙是否放行、Cpu是否被其他程序打满100%、内存是否被打爆、网络是否通畅、连接数是否正常、硬盘读写是否正常
- 博客程序本身是否有Bug、插件是否有漏洞、评论是否有漏洞、机器是否缺少博客程序的运行环境
- 数据库是否Hang住、是否发生死锁、吞吐是否异常、特殊字符编码是否支持
- 缓存是否击穿、穿透、雪崩
- Nginx是否配置正确、证书是否自动续期
- 机器、博客程序、类宝塔面板等常用程序是否被探测扫描
- 被DDOS或CC时你是否能进入机器备份数据
这一系列的问题,都是你在每一天、每一刻,将面对的变数。
然而随便拿出几项,如果你没有技术能力,都是极其难掌控和处理的,最终的结果就是站进入黑洞、数据丢失、被挂恶意程序、被劫持等。
我们反观静态博客,如Hugo:
- 电脑下载或安装Hugo、安装Git(如果不用Hugo甚至不需要),比安装微信复杂一点点
- 打开你电脑中几乎一定存在的终端工具,执行几个命令
- 将你写的Markdown内容生成转换为html文件
- 将这些html文件上传到COS(有图形化工具不需要使用Git)、OSS(有图形化工具不需要使用Git)、github、服务器上的nginx都可
那些你洋洋洒洒写下的Markdown文件就在你面前,你的安全感十足。
运行期间,除了DDOS和CC攻击外,你不需要担心任何机器、程序、数据库、缓存等等问题,这些问题都交给了极其专业的基础设施提供者,你只需要安心写你的东西,然后敲打几个命令,内容就被安全无误的上传到安全地带,数据天然本地和云端双重备份,你的安全感由十足变百足。
结论
动态,代表着运行时无穷无尽的变化与未知,任何一个节点出现问题,都可能牵一发而动全身,机器与机器、线路与线路、程序与程序、库与库、表与表之间的关联关系错综复杂,相互协作。
技术小白是缺少对于变化、异常情况的掌控能力的,而这种变化又可能在任何时刻发生,你也不想每时每刻都担心对嘛。
静态,代表着第一次会复杂一点,但在后续你的使用、博客的运行时,将稳如泰山。
所以,我更推荐技术小白使用静态,就像你第一次学骑车🚴🏻,刚起步会有点难度,但骑了几次后,你甚至从未再忧虑过该怎么起步、怎么前进、怎么保持平衡。
什么???你说静态博客出问题会不会更难解决?
不,静态博客不会出问题,如果出问题,那就是你的问题,hhhh.
以上,个人拙见,不喜可喷,拜拜👋🏻。