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 版本不兼容等),欢迎在评论区留言,我们一起讨论解决!

相关推荐
dgvri2 小时前
Linux(CentOS)安装 MySQL
linux·mysql·centos
Coder个人博客2 小时前
06_apollo_third_party子模块整体软件架构深入分析文档
linux·人工智能·架构
rebekk2 小时前
PyTorch Dispatcher介绍
人工智能·pytorch·python
我爱学习好爱好爱2 小时前
Ansible 常用模块详解:cron、archive、unarchive实战
linux·服务器·ansible
呱牛do it2 小时前
企业级软件研发团队绩效考核系统开发(持续更新 Day 8)
python·fastapi·研发管理
十年编程老舅2 小时前
Linux 多线程高并发编程:读写锁的核心原理与底层实现
linux·c++·linux内核·高并发·线程池·多线程·多进程
阿kun要赚马内2 小时前
Python面向对象:@property装饰器
开发语言·前端·python
测试19982 小时前
Python+Excel读取和存储测试数据完成接口自动化测试
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
曲幽2 小时前
FastAPI + Celery 实战:异步任务的坑与解法,我帮你踩了一遍
redis·python·fastapi·web·async·celery·background·task·queue