Bludit轻量级CMS:在Oracle云服务器上搭建主从博客系统

Bludit轻量级CMS:在Oracle云服务器上搭建主从博客系统

为什么选择Bludit?

在寻找适合云服务器部署的内容管理系统时,Bludit凭借其以下优势脱颖而出:

1. 极致轻量

  • 无需数据库服务器:Bludit使用SQLite文件型数据库,无需MySQL、PostgreSQL等额外服务
  • 资源占用极低:核心代码仅几MB,在956MB内存的Oracle云服务器上运行流畅
  • 部署简单:只需PHP 7.4+环境,上传即可运行

2. 简单易用

  • 文件存储:所有内容(文章、页面、配置)都存储在bl-content目录下
  • 易于备份:只需复制整个bl-content目录即可完成备份
  • 易于迁移:只需将文件复制到新环境即可完成迁移

3. 支持REST API

  • 自动化友好:提供完整的REST API接口,支持通过API创建、编辑、删除文章
  • 第三方集成:可与爬虫、自动化脚本无缝集成
  • 扩展性强:支持自定义插件开发

4. 开源免费

  • MIT许可证:完全开源,可自由使用和修改
  • 社区活跃:有丰富的主题和插件生态
  • 持续更新:定期发布新版本和功能更新

服务器环境

硬件配置(Oracle Cloud Always Free)

  • CPU:AMD EPYC 7551 32-Core(共享)
  • 内存:956MB
  • 存储:45GB
  • 带宽:10TB/月

软件环境

  • 操作系统:Ubuntu 24.04 LTS
  • Web服务器:Nginx 1.24.0
  • PHP版本:PHP 8.3.6
  • PHP扩展:php-fpm, php-sqlite3, php-gd, php-curl, php-mbstring

主从配置方案

方案设计

主服务器(209)- 163.192.24.209

  • 角色:读写服务器
  • 职责:内容发布、编辑、管理
  • 工作方式:管理员在此进行内容操作

从服务器(125)- 159.54.173.125

  • 角色:只读服务器
  • 职责:内容展示、访问服务
  • 工作方式:定时从主服务器同步内容

同步脚本实现

在主服务器上创建/root/sync_bludit.sh脚本:

#!/bin/bash

CONTENT_DIR="/var/www/html/bl-content"
SLAVE_IP="159.54.173.125"
LOG_FILE="/tmp/bludit_rsync.log"

echo "=========================================="
echo "Bludit 内容同步 (rsync)"
echo "开始时间:\$(date)"

# rsync同步
rsync -avz --delete \
  -e "ssh -o StrictHostKeyChecking=no" \
  ${CONTENT_DIR}/ \
  root@${SLAVE_IP}:${CONTENT_DIR}/

echo "同步完成!"
echo "结束时间:\$(date)"
echo "=========================================="

# 记录日志
echo "[$(date)] 同步完成" >> ${LOG_FILE}

赋予执行权限:

chmod +x /root/sync_bludit.sh

定时任务配置

在主服务器上添加cron定时任务,每小时同步一次:

# 编辑crontab
crontab -e

# 添加以下行
0 * * * * /root/sync_bludit.sh >> /tmp/bludit_rsync.log 2>&1

这样,系统会在每小时的第0分钟(如08:00、09:00...)自动执行同步。

优势总结

通过这套主从方案,我们获得了以下优势:

1. 内容一致性

  • 主从内容完全一致
  • 单点写入避免冲突
  • 定时自动同步保证实时性

2. 高可用性

  • 主服务器维护时,从服务器仍可访问
  • 分布式部署提升访问速度
  • 降低单点故障风险

3. 易于维护

  • rsync自动同步,无需人工干预
  • 完整的日志记录
  • 简单的备份和恢复

4. 资源高效

  • 从服务器只读,降低资源消耗
  • SQLite文件型数据库,轻量高效
  • 无需复杂的数据库主从配置

作者:甜甜 日期:2026年2月25日 技术栈:Ubuntu 24.04 + Nginx + PHP 8.3 + Bludit 3.17.2