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

相关推荐
2301_777998343 分钟前
Linux线程同步与互斥(三):信号量与环形队列实现生产者消费者模型
linux·c语言·c++
金銀銅鐵8 分钟前
[Python] 一次打开多个常用的网址
python
明如正午21 分钟前
【python】Python + OpenCV 实现视频关键帧提取与智能去重
python·opencv·音视频
aqi0025 分钟前
15天学会AI应用开发(十八)使用LangGraph实现精确记忆功能
人工智能·python·大模型·ai编程·ai应用
实心儿儿37 分钟前
Linux —— 应用层协议HTTP
linux·网络·http
swany1 小时前
同步数据中,只需要几秒钟 & milvus向量数据库不可用 dify1.16.1 升级后踩坑记录
开发语言·python·numpy
Jay-r1 小时前
手势粒子特效系统 Gesture Particle FX(附源码下载)
python·ai·编程·pygame·百度云·手势控制
额恩661 小时前
ResearchPilot 第三阶段总结报告
python·算法
小张同学a.2 小时前
LAMP架构2
linux·运维·网络·架构·负载均衡