欢迎来到知识记录站点!本篇内容将讲述站点建设过程,包括了所采用的技术、维护策略以及相关花费。本站点以Hexo为基础,选择了NexT主题美化界面。本站点由自托管Gitea及Drone提供相关仓库、集成服务。本站点源站架设在西部数码的体验型虚拟主机上。为降低源站压力,增加用户访问速度,采用了ABXCDN所提供的融合CDN服务。
本文章并不适合萌新,阅读本文章需要具备一定的专业知识
NexT
安装Hexo
1 | $ npm install hexo-cli -g |
安装成功后创建博客目录
1 | $ mkdir blog |
初始化博客目录
1 | $ cd blog |
从Github下载NexT主题最新发布版本
解压至themes并改名为next
解压后目录结构为,此处隐藏文件未列出
1 | themes |
可以手动将themes/next/_config.yml改名_config.next.yml移动至themes同级目录下,此处为blog文件夹
完成上述步骤后,开始着手配置网站内容
配置时一定要看注释!!!
配置时一定要看注释!!!
配置时一定要看注释!!!
_config.yml中涉及到网站标题、作者以及hexo相关配置设定
_config.next.yml则是主题配置,其中支持ICP备案及公安备案信息设置
NexT主题默认存在四个Scheme,可以认为是四套样式,本站所使用的就是Gemini,并在此基础上进行少量修改
- Muse
- Mist
- Pisces
- Gemini
配置完毕后可以进行下面操作
本地预览
1 | $ hexo server |
生成静态文件
1 | $ hexo generate |
清理静态文件
1 | $ hexo clean |
部署,需要提前在_config.yml中进行部署配置
1 | $ hexo deploy |
Drone
此处先决条件为已为该博客配置Git库
Github可通过.github文件夹来进行CI/CD
此节存在技术门槛,仅提供blog的Drone配置文件
.drone.yml
1 | kind: pipeline |
Automation
本站点自动化流程为
- 在本地更新、预览修改
- 将新的修改提交至自托管Gitea
- Gitea触发Webhook通知Drone
- Drone拉取更新后进行执行恢复缓存、构建、发布、重建缓存、预热步骤
CDN
CDN可以将源站静态资源缓存至CDN节点服务器,当用户访问网站时,可就近获取网站静态资源,动态资源则由CDN节点服务器请求源站后返回,即回源
采用CDN可以增加网站加载速度,优化用户侧浏览体验,并且由于静态资源已被CDN节点服务器响应,源站访问压力将大大降低
本站点使用ABXCDN提供的融合CDN进行加速
截至本文章编写时,其节点为:
国内加速节点:包括腾讯云、火山引擎节点,其中腾讯云节点支持websocket
VIP线路:大陆优化节点,支持websocket,不提供缓存功能,提供防御
国际常规加速节点: 腾讯云国际节点,未详细测试
截至本文章编写时,部分使用体会:
仅对流量进行收费,无HTTPS请求费用
没有统一的证书管理,证书仅在域名中设置(已更新证书管理功能)没有自动申请证书功能,需要手动管理
Tips:
- 国内使用CDN要求网站具备ICP备案
- 本站点备案于西部数码,域名在腾讯云,此时使用国内CDN,需要将域名入库/转入至西部数码
- 因此建议域名和主机在同一家公司,以便管理
Cost
本站点部署时涉及费用:
- 西部数码体验型虚拟主机: ¥68/年
- ABXCDN流量: ¥17/100G
- (非必要)阿里云企业标准版DNS解析: ¥198/年
- (非必要)服务器托管: ¥350/月
各项用途:
- 虚拟主机: 部署站点
- CDN: 加速用户访问,缓存整站资源以减少虚拟主机流量消耗
- DNS: 高精度、低TTL的DNS解析
- 服务器: 自建Gitea、Drone等开发服务