独立Nginx+双节点MinIO高可用部署方案(Ubuntu 24.04版)
一、节点信息汇总(固定IP+角色分工)
| 节点角色 | 主机名 | 固定IP | 硬件配置(最小要求) | 系统版本 | 核心职责 |
|---|---|---|---|---|---|
| 独立Nginx节点 | minio-nginx-proxy | 192.168.192.115 | 2C2G,20GB系统盘 | Ubuntu 24.04 LTS | 负载均衡(9000控制台/9001 API)、HTTPS终止、统一访问入口 |
| MinIO节点1 | minio-node1 | 192.168.192.116 | 2C4G,2块≥100GB数据盘 | Ubuntu 24.04 LTS | 分布式存储、数据冗余(纠删码) |
| MinIO节点2 | minio-node2 | 192.168.192.117 | 2C4G,2块≥100GB数据盘 | Ubuntu 24.04 LTS | 分布式存储、数据冗余(纠删码) |
二、架构设计
1. 拓扑逻辑
客户端 → 独立Nginx(192.168.192.115:9000/9001)→ 双MinIO节点(192.168.192.116/117:9000/9001)→ 分布式存储(每节点2块数据盘,纠删码4+2)
2. 核心特性
- 统一入口:客户端仅访问Nginx节点IP(192.168.192.115),无需感知MinIO节点
- 高可用:单MinIO节点故障/单磁盘故障,服务不中断、数据不丢失
- 安全隔离:MinIO节点仅开放9000/9001端口给Nginx,不对外暴露
三、前置条件(所有节点执行,Ubuntu 24.04适配)
1. 系统基础配置(统一操作)
(1)更新系统并安装依赖
# 更新软件源
sudo apt update && sudo apt upgrade -y
# 安装核心依赖(curl、wget、ntpdate、net-tools)
sudo apt install -y curl wget ntpdate net-tools
(2)时间同步(避免节点时间差)
# 同步阿里云NTP服务器
sudo ntpdate ntp.aliyun.com
# 设置定时同步(每5分钟一次)
echo "*/5 * * * * root ntpdate ntp.aliyun.com" | sudo tee -a /etc/crontab
(3)关闭不必要服务(优化资源)
# 关闭防火墙?不,后续配置精细化规则,保持ufw开启
sudo ufw enable
2. MinIO节点额外前置(116/117均执行)
(1)磁盘准备(每节点2块空闲磁盘,假设为/dev/sdb、/dev/sdc)
# 格式化磁盘为xfs(先安装xfs工具)
sudo apt install -y xfsprogs
# 检查磁盘是否存在
lsblk | grep sd[b,c]
# 格式化磁盘为xfs
sudo mkfs.xfs /dev/sdb && sudo mkfs.xfs /dev/sdc
# 创建挂载目录
sudo mkdir -p /mnt/minio/data{1..2}
# 配置开机自动挂载(写入/etc/fstab)
echo "/dev/sdb /mnt/minio/data1 xfs defaults 0 0" | sudo tee -a /etc/fstab
echo "/dev/sdc /mnt/minio/data2 xfs defaults 0 0" | sudo tee -a /etc/fstab
# 立即挂载并验证
sudo mount -a && df -h | grep /mnt/minio
# 检查挂载状态
mount | grep minio
(2)配置防火墙(仅允许Nginx节点访问9000/9001)
# 允许Nginx节点(192.168.192.115)访问MinIO API(9000)和控制台(9001)
sudo ufw allow from 192.168.192.115 to any port 9000
sudo ufw allow from 192.168.192.115 to any port 9001
# 允许MinIO节点间通信(集群内部通信)
sudo ufw allow from 192.168.192.116 to 192.168.192.117 port 9000
sudo ufw allow from 192.168.192.117 to 192.168.192.116 port 9000
sudo ufw allow 22/tcp
# 重载防火墙规则
sudo ufw reload
# 验证规则(应显示允许115访问9000/9001,以及节点间通信规则)
sudo ufw status numbered
3. Nginx节点额外前置(115执行)
(1)开放 客户端访问端口(9000/9001)
# 开放新的HTTP端口
sudo ufw allow 22/tcp
sudo ufw allow 9000/tcp
sudo ufw allow 9001/tcp
# 重载防火墙
sudo ufw reload
# 验证规则
sudo ufw status numbered