温馨提示×

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 代理。

0