在私有化部署对象存储(OSS)的方案中,MinIO 凭借其轻量级、高性能以及完美兼容 S3 协议的特性,已经成为了开发和运维的首选。无论是存图片、存日志还是备份数据库,它都能完美胜任。
今天我们不谈虚的,直接上干货,演示如何在最基础的 CentOS 7/8 裸机环境下,实现 5 分钟极速部署。
一、 环境准备
在开始操作前,请确保您的机器已联网,并拥有 root 权限。
1. 创建必要目录
为了规范管理,我们将程序文件、数据文件分开存放,建议数据目录挂载在空间充裕的分区。
bash
# 创建数据存储目录
mkdir -p /data/minio/data
2. 下载二进制文件
直接使用官方预编译的 Linux 二进制文件,这是最快且最稳定的部署方式。
bash
cd /usr/local/bin
# 下载 MinIO 服务端程序
wget [https://dl.min.io/server/minio/release/linux-amd64/minio](https://dl.min.io/server/minio/release/linux-amd64/minio)
# 赋予可执行权限
chmod +x minio
二、 配置环境变量
MinIO 默认的管理员账号密码是 minioadmin,在公网环境下极不安全。我们必须在启动前自定义账号信息。执行以下命令,将配置写入系统变量:
bash
cat <<EOF >> /etc/profile
# MinIO Configuration
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=your_complex_password_123
EOF
# 使配置立即生效
source /etc/profile
注意 :请将
your_complex_password_123替换为您自己的强密码(建议至少8位)。
三、 启动 MinIO 服务
MinIO 的运行涉及两个核心端口:
- API 端口 (9000):用于应用程序调用(如 Java/Python SDK)上传、下载。
- Console 端口 (9001) :用于浏览器访问的可视化管理后台。
我们采用nohup后台运行方式,并将日志重定向,方便后续排查。
bash
nohup minio server /data/minio/data --console-address ":9001" --address ":9000" > /data/minio/minio.log 2>&1 &
检查启动状态:
执行 ps -ef | grep minio,看到进程存在即代表启动成功。
四、 防火墙配置(避坑指南)
很多同学反馈"服务启动了但网页打不开",90% 的原因是因为 CentOS 防火墙没有放行端口。
bash
# 1. 永久放行 API 端口和 Console 端口
firewall-cmd --zone=public --add-port=9000/tcp --permanent
firewall-cmd --zone=public --add-port=9001/tcp --permanent
# 2. 重载防火墙配置
firewall-cmd --reload
特别提醒:如果是云服务器(阿里云/腾讯云/华为云),请务必在云平台控制台的**"安全组"**中同步开启 9000 和 9001 端口。
五、 访问与验证
- 登录后台 :打开浏览器,访问
http://服务器公网IP:9001。 - 身份认证 :输入刚才设置的
admin和密码。 - 创建 Bucket :进入界面后,点击 "Create Bucket" ,创建一个名为
test的桶。 - 上传测试:尝试上传一张图片。如果能正常显示缩略图,说明你的私有云存储已经搭建完毕!
六、 进阶建议
- Systemd 托管 :单机测试建议使用
nohup。如果是生产环境,建议编写minio.service脚本,实现开机自启和进程守护。 - HTTPS 加密 :若涉及公网传输,建议前置 Nginx 做反向代理,并配置 SSL 证书。
- 定期备份:虽然 MinIO 稳定性极佳,但单机部署仍建议定期对数据目录进行物理备份。
结语
通过以上几步,你就已经拥有了一个属于自己的"私有化 OSS"。对于小型项目、开发测试环境,单机版 MinIO 的性能绰绰有余。
如果你在部署过程中遇到任何报错(如 GLIBC 版本不兼容等),欢迎在评论区留言,我们一起讨论解决!