Ubuntu系统怎样部署MinIO
小樊
37
2025-12-24 16:26:05
Ubuntu 部署 MinIO 实操指南
一 环境准备与二进制安装
- 更新系统并安装常用工具:
- sudo apt update && sudo apt install -y wget curl
- 创建系统用户与数据目录(避免使用 root 运行):
- sudo useradd -r -s /usr/sbin/nologin minio-user
- sudo mkdir -p /usr/local/share/minio /etc/minio
- sudo chown -R minio-user:minio-user /usr/local/share/minio /etc/minio
- 下载并安装 MinIO 二进制到系统路径:
- wget https://dl.min.io/server/minio/release/linux-amd64/minio
- chmod +x minio
- sudo mv minio /usr/local/bin/
- 说明:MinIO 默认 API 端口为 9000,控制台端口为 9001(新版将控制台与 API 分离)。
二 配置 systemd 服务
- 创建环境文件 /etc/default/minio(示例为单磁盘,生产可挂载多盘并配置 MINIO_VOLUMES):
- sudo nano /etc/default/minio
- 写入示例(请自定义强密码):
- MINIO_ROOT_USER=Admin
- MINIO_ROOT_PASSWORD=StrongPassw0rd!
- MINIO_VOLUMES=“/usr/local/share/minio/”
- MINIO_OPTS=“–console-address :9001”
- 创建服务单元 /etc/systemd/system/minio.service(使用独立用户与最小权限):
- sudo nano /etc/systemd/system/minio.service
- 写入示例:
- [Unit]
- Description=MinIO Object Storage
- Documentation=https://docs.min.io
- Wants=network-online.target
- After=network-online.target
- [Service]
- Type=notify
- User=minio-user
- Group=minio-user
- EnvironmentFile=/etc/default/minio
- ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
- Restart=always
- RestartSec=5
- LimitNOFILE=65536
- [Install]
- WantedBy=multi-user.target
- 启用并启动服务:
- sudo systemctl daemon-reload
- sudo systemctl enable --now minio
- sudo systemctl status minio
- 提示:如需对外仅暴露控制台端口,可将 API 绑定到本地回环(在 MINIO_OPTS 中增加 –address 127.0.0.1:9000),再由反向代理对外提供 API。
三 防火墙与端口开放
- UFW(Ubuntu 常用防火墙):
- sudo ufw allow 9000,9001/tcp
- sudo ufw reload
- firewalld(如系统使用 firewalld):
- sudo firewall-cmd --permanent --add-port=9000/tcp
- sudo firewall-cmd --permanent --add-port=9001/tcp
- sudo firewall-cmd --reload
- 云服务器安全组:放行 TCP 9000/9001 入站规则。
四 访问控制台与初始化
- 访问地址:
- 控制台:http://<服务器IP>:9001
- API:http://<服务器IP>:9000(S3 兼容)
- 首次登录使用在 /etc/default/minio 中配置的 MINIO_ROOT_USER / MINIO_ROOT_PASSWORD。
- 基本操作建议:
- 创建 Bucket、设置 Access Policy(public/private)、配置 IAM 用户/密钥、开启 Bucket Versioning/Object Lock(如需要)。
- 客户端(mc)配置别名示例:
- mc alias set myminio http://:9000 Admin StrongPassw0rd!
- mc ls myminio
五 生产环境加固与进阶
- 使用域名与反向代理(Nginx/ALB)统一暴露,并启用 TLS/HTTPS:
- 示例 Nginx 反向代理片段(将 9001 暴露为 443,API 9000 仅内网或代理转发):
- server {
- listen 443 ssl http2;
- server_name minio.example.com;
- ssl_certificate /etc/letsencrypt/live/minio.example.com/fullchain.pem;
- ssl_certificate_key /etc/letsencrypt/live/minio.example.com/privkey.pem;
- client_max_body_size 0;
- proxy_buffering off;
- location / {
- proxy_set_header Host $http_host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header X-Forwarded-Proto $scheme;
- proxy_http_version 1.1;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection “upgrade”;
- proxy_pass http://127.0.0.1:9001;
- }
- }
- 如需直接由 MinIO 终止 TLS,可将证书与私钥放入 /etc/minio/certs/(文件名为 private.key 与 public.crt),并重启服务。
- 高可用与扩展:
- 单机多盘:在 MINIO_VOLUMES 中指定多个目录(示例:“/data1 /data2 /data3”)。
- 分布式部署:按官方指引准备多台服务器与多块磁盘,使用分布式启动命令与纠删码/副本策略。
- 安全建议:
- 使用强密码与最小权限策略,定期轮换 Access Key/Secret Key。
- 限制管理接口访问来源(仅内网或跳板机)。
- 开启访问日志与监控告警,定期备份配置与证书。