CentOS 裸机实操:5分钟完成 MinIO 单机部署与公网访问

在私有化部署对象存储(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 端口。


五、 访问与验证

  1. 登录后台 :打开浏览器,访问 http://服务器公网IP:9001
  2. 身份认证 :输入刚才设置的 admin 和密码。
  3. 创建 Bucket :进入界面后,点击 "Create Bucket" ,创建一个名为 test 的桶。
  4. 上传测试:尝试上传一张图片。如果能正常显示缩略图,说明你的私有云存储已经搭建完毕!

六、 进阶建议

  • Systemd 托管 :单机测试建议使用 nohup。如果是生产环境,建议编写 minio.service 脚本,实现开机自启和进程守护。
  • HTTPS 加密 :若涉及公网传输,建议前置 Nginx 做反向代理,并配置 SSL 证书。
  • 定期备份:虽然 MinIO 稳定性极佳,但单机部署仍建议定期对数据目录进行物理备份。

结语

通过以上几步,你就已经拥有了一个属于自己的"私有化 OSS"。对于小型项目、开发测试环境,单机版 MinIO 的性能绰绰有余。
如果你在部署过程中遇到任何报错(如 GLIBC 版本不兼容等),欢迎在评论区留言,我们一起讨论解决!

相关推荐
凯瑟琳.奥古斯特11 小时前
数据库原理选择题精选
数据库·python·职场和发展
printfLILEI11 小时前
php中的类与对象以及反序列化
linux·开发语言·php
彦为君11 小时前
JavaSE-07-异常机制
java·开发语言·后端·python·spring
适应规律12 小时前
【无标题】
人工智能·python·算法
XLYcmy12 小时前
全链路验证测试系统:一个针对智能代理(Agent)系统全链路能力的自动化验证脚本
分布式·python·http·网络安全·ai·llm·agent
有味道的男人12 小时前
电商效率翻倍:京东全量商品信息抓取
python
原来是猿12 小时前
博客系统自动化测试实战总结
python
叠叠乐12 小时前
redmi k90 pro max 强解BL,刷海外rom, 并刷入sukisu ultra
linux
小江的记录本13 小时前
【JVM虚拟机】JVM调优:常用JVM参数、调优核心指标、OOM排查、GC日志分析、Arthas工具使用(附《思维导图》+《面试高频考点清单》)
java·jvm·spring boot·后端·python·spring·面试