关于本博客的搭建
曾经用 hexo 搭过一份, 可换了几个模板都不太喜欢;
后来看到 飞雪无情 的博客后, 很喜欢这个主题, 就开始尝试 hugo 来做了;
我对博客的需求
- 必须是静态博客;
- 支持加载自定义 js 和 css
- 主题好看
为什么必须是静态站点
- 动态站点涉及到很多应用程序动态生成的内容, 就很容易出现漏洞和攻击面,需要经常关注和版本升级, 太麻烦。
- 启动一个 java, php 等进程就很耗费资源, 一般还得搭配一个数据库, 对于最低配云主机开销太大;
- 纯静态的页面可以有效利用缓存, 加速访问
- 当前主流的静态站点都可以根据 markdown 来渲染页面, 写起来也方便
hugo 部分
这块内容就比较简单了
- 下载二进制程序;
- 然后本地初始化一个站点,
- 再拉取一个自己喜欢的主题
- 写相关《文章.md》
- 执行 hugo 渲染出静态页面
- 上传到 nginx 网站目录下
静态资源处理
主要的静态资源包括
- html文件
- js, css 文件
- image 图片文件
- 其它杂类文件
原本站点整体部署在私有网络内, ECS 上只是做为一个反向代理+缓存的作用, 运行了很长一段时间也没有问题;
但我还有一个需求一直满足不了,就是内外网生产测试环境的场景;
我希望在外网通过 chenwx.top 来访问这个网站; 在内网通过 blog.services.wait (内部dns)来访问这个网站;
文章修改先发布到测试环境, 预览效果没问题再发布到正式环境去;
于是只能将公共部分拆解出来; 除 html 外的静态文件都存放在统一的对象存储内; html 部分则分为两套, 内网一套做测试环境, ecs 一套做正式环境;
Artalk 留言板
早期我曾自己做了一个留言板;
go 做后端提供几个接口, 然后打开页面时 js 拉取当前文章的评论列表。
页面效果极为单调, 但基础功能还是有的, 可以用;
但是存在很多的遗留问题和隐患, 除了页面效果外, 后台接口改版起来也非常麻烦;
因为设计的不好, 导致加个新功能就得大改, 折腾几次就很累了;
于是使用开源的 Artalk 留言板, 而且支持表情包, 图片上传,评论管理等,就很方便了;
因为每个页面都需要请求 Artalk 后台, 且还使用到了 Artalk 的 PV 统计功能, 考虑到效率问题, 就不能将它部署在我的私网了, 这个组件目前部署在 ECS 上;
此功能暂时已经下线
umami 站点统计
早期我是用的 elk 套件, 隔一段时间进去筛选一下异常的访问记录, 或者是进行一些常规统计;
后来觉得还是有必要用个专业的站点统计工具吧, 但又不想使用百度统计;
于是添加 umami 组件;
页面上的 js 的上报是异步进行的, 所以对当前的页面访问基本没有影响, 所以这个组件的后台部署在私有网络内;
umami 也是支持多站点的, 所以目前测试环境和正式环境也是复用的一套;
上报的内容并不多, 数据也非常简单, 但 umami 支持上报自定义数据, 后面有时间再研究一下;
此功能暂时已经下线