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

相关推荐
根目录下的猫2 小时前
ArkTS 代码中如何添加作者信息
linux·运维·ubuntu
FelixZhang0282 小时前
不懂金融或不会编程,如何开始量化?从策略搭建到回测验证
人工智能·python·算法·数学建模·均值算法·自然语言处理·金融
Linux界最忧郁之人2 小时前
OpenStack Victoria双节点实战|Packstack一键部署(CentOS‑Stream‑8)+华为云ECS实操
linux·运维·服务器·centos·华为云·openstack
DevNote_2 小时前
1C1G 服务器从零配置实录(附完整命令)
linux·运维·服务器·javascript·adb·ssh·gmssh
haermosi2 小时前
Ubuntu 下 Flameshot 截图一直闪屏,已找到问题并解决
linux·ubuntu·gnome·问题排查·flameshot·linux 使用记录
进击的荆棘2 小时前
Linux系统——进程信号之保存和捕捉信号
linux·运维·服务器·信号处理·信号
打工仔折腾 AI2 小时前
后端部署避坑:吃透IPv4地址、网络接口与CIDR前缀的实际应用
arm开发·人工智能·后端·python·性能优化
whyutianict_vv4 小时前
云计算 HCIE 认证体系解析:HCIA/HCIP/HCIE 三级科目与知识边界
linux·运维·云计算
0+11111 小时前
Linux --从 poll 到 epoll多路转接
linux·服务器·1024程序员节
青瓦梦滋11 小时前
WebSocket协议
linux·服务器·网络·c++·websocket·网络协议·http