全栈个人云平台搭建指南:基于 Hexo 与 Memos 的双系统架构
摘要:
本文详细介绍了如何在阿里云 ECS 上搭建一套高可用、低成本的个人云平台。
架构采用 “动静分离” 策略:
- 主站:基于 Hexo + Butterfly 的静态技术博客,专注于高性能内容展示。
- 子站:基于 Docker + Memos 的动态日记系统,用于碎片化记录与私有化存储。
🌏 一、 基础设施环境初始化
服务器选用阿里云 ECS(Ubuntu 系统,2核 2G 配置),为保证系统安全与稳定性,需进行以下初始化操作。
1.1 系统安全加固
- 用户管理:创建普通用户
admin-alex并赋予 sudo 权限,禁止 root 用户直接远程登录。 - SSH 配置:修改
/etc/ssh/sshd_config,设置PermitRootLogin no,并启用密钥对登录,关闭密码验证。
1.2 内存优化 (Swap)
针对 2G 内存运行 Docker 可能出现的 OOM (内存溢出) 风险,配置 2GB 的 Swap 交换分区:
1 | sudo fallocate -l 2G /swapfile |
1.3 合规性配置
依据国内互联网法律法规,完成以下合规流程:
ICP 备案:通过阿里云初审及工信部短信核验。
公安备案:在全国互联网安全管理服务平台完成备案(服务类型选择“非交互式”)。
页面整改:在网页底部显著位置悬挂 ICP 备案号及公安备案号链接。
🔒 二、 全站 HTTPS 安全加密
为保障数据传输安全,全站启用 HTTPS(SSL/TLS)。
2.1 证书申请
使用阿里云数字证书管理服务申请免费 DV 单域名证书(DigiCert)。
- 验证技巧:若自动 DNS 验证延迟,可手动在云解析 DNS 中添加 _dnsauth 的 TXT 记录以加速签发。
2.2 Nginx 反向代理配置
配置 Nginx 接管 80 (HTTP) 和 443 (HTTPS) 端口,并强制 HTTP 跳转 HTTPS。
核心配置示例 (/etc/nginx/sites-enabled/default):
codeNginx
1 | server { |
🎨 三、 Hexo 静态博客部署 (主站)
主站采用 Hexo 框架配合 Butterfly 主题,实现纯静态化发布。
3.1 本地构建环境
环境:Node.js + Git + Hexo CLI。
主题:安装 hexo-theme-butterfly,配置打字机特效、大封面图及侧边栏。
3.2 自动化部署流
为解决 SCP 传输大量小文件不稳定的问题,采用 “打包-传输-解压” 的部署策略:
本地构建与打包 (PowerShell):
codePowershell
1
2
3hexo g
Compress-Archive -Path .\public -DestinationPath .\release.zip -Force
scp release.zip admin-alex@ServerIP:~服务端解压与发布:
codeBash
1
2unzip -o release.zip
sudo cp -r public/* /var/www/html/
📓 四、 Memos 私有日记部署 (子站)
子站采用 Memos 构建轻量级笔记服务,通过 Docker 容器化部署。
4.1 Docker 部署
使用 Docker 一键启动服务,映射 5230 端口,并挂载数据卷以持久化存储:
codeBash
1 | sudo docker run -d \ |
4.2 反向代理与子域名
域名解析:添加 A 记录 diary 指向服务器 IP。
Nginx 配置:配置 diary.jjmstart.com 的反向代理,将流量转发至 127.0.0.1:5230。
4.3 游客访问增强
Memos 默认强制登录。为提升游客体验,通过注入自定义 JavaScript 脚本,在登录页增加“游客入口”按钮:
codeJavaScript
1 | // 脚本逻辑:在登录表单下方动态插入跳转至 /explore 的按钮 |
🚀 五、 总结
至此,一套基于 Linux + Nginx + Docker 的全栈个人云平台已搭建完成。该架构具备以下优势:
低成本:动静分离,极低内存占用。
高安全:全站 HTTPS 加密,SSH 安全加固。
易维护:基于 Docker 的容器化管理与基于 Git 的版本控制。
后续优化方向:
配置阿里云 OSS + Crontab 实现数据异地自动备份。
引入服务器可视化监控面板 (如 1Panel)。
