MinIO如何与Ubuntu集成
小樊
44
2025-12-18 20:06:37
在 Ubuntu 上集成 MinIO 的实用方案
一 环境准备与安装
- 更新系统并安装常用工具:
- sudo apt update && sudo apt upgrade -y
- 创建系统用户与数据目录(以非 root 运行更安全):
- sudo useradd -r minio-user -s /sbin/nologin
- 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 兼容 Amazon S3 API,后续应用可用 S3 客户端直连。
二 以 systemd 托管并配置
- 创建环境变量文件 /etc/default/minio(请替换为强密钥):
- MINIO_VOLUMES=“/usr/local/share/minio/”
- MINIO_OPTS=“–address :9000 --console-address :9090”
- MINIO_ROOT_USER=“YOUR_ACCESS_KEY”
- MINIO_ROOT_PASSWORD=“YOUR_SECRET_KEY”
- 创建服务文件 /etc/systemd/system/minio.service:
- [Unit]
- Description=MinIO
- Documentation=https://docs.min.io
- Wants=network-online.target
- After=network-online.target
- [Service]
- User=minio-user
- Group=minio-user
- EnvironmentFile=/etc/default/minio
- ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
- Restart=always
- LimitNOFILE=65536
- [Install]
- WantedBy=multi-user.target
- 启动与开机自启:
- sudo systemctl daemon-reload
- sudo systemctl start minio
- sudo systemctl enable minio
- 访问控制台:浏览器打开 http://<服务器IP>:9090,使用上一步设置的凭据登录。
三 反向代理与 HTTPS
- 安装 Nginx:
- sudo apt install nginx -y
- 站点配置(示例:/etc/nginx/sites-available/minio.example.com):
- server {
- listen 80;
- server_name minio.example.com;
- location / {
- proxy_pass http://127.0.0.1:9000;
- proxy_set_header Host $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;
- }
- }
- 启用站点并测试:
- sudo ln -s /etc/nginx/sites-available/minio.example.com /etc/nginx/sites-enabled/
- sudo nginx -t && sudo systemctl reload nginx
- 申请并自动配置 Let’s Encrypt 证书:
- sudo apt install certbot python3-certbot-nginx -y
- sudo certbot --nginx -d minio.example.com
- 访问:控制台通过 https://minio.example.com(端口 443 自动 TLS),对象 API 通过 https://minio.example.com 代理到 9000。
四 防火墙与端口策略
- UFW 放行(示例):
- 仅内网访问控制台:sudo ufw allow from 192.168.1.0/24 to any port 9090
- 公网仅开放 443(推荐):sudo ufw allow 443/tcp
- 如需临时开放 API:sudo ufw allow 9000/tcp
- 云厂商安全组同样只放行 443,避免直接暴露 9000/9090。
五 客户端与运维要点
- 安装 MinIO 客户端 mc 并对接服务:
- wget https://dl.min.io/client/mc/release/linux-amd64/mc
- chmod +x mc && sudo mv mc /usr/local/bin/
- mc alias set myminio https://minio.example.com YOUR_ACCESS_KEY YOUR_SECRET_KEY
- mc ls myminio/
- mc mb myminio/mybucket
- mc cp /path/file myminio/mybucket/
- 存储与性能建议(单节点多盘):
- 优先使用直连 JBOD 阵列,磁盘格式化为 XFS,容量与类型保持一致;混用会降低性能与一致性。
- 常见问题排查:
- 查看服务状态:systemctl status minio
- 查看实时日志:journalctl -u minio -f
- 控制台端口默认为 9090,API 为 9000;若与 Nginx 配合,API 走 443 代理。