在 Ubuntu 上搭建 MinIO

Table of Contents

MinIO 是一个比较常用的对象存储服务(OSS),本文主要简单的介绍下在 Ubuntu 上搭建 MinIO 服务,并提供公网访问。

安装

MinIO 支持多种安装方式,这里选择最简单的 Binary 方式安装

wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
sudo mv minio /usr/local/bin/

运行

MINIO_ROOT_USER=用户名 MINIO_USER_PASSWORD=密码 nohup minio server /data/minio-data --console-address :9001 --address :9000 > ./minio.log 2>&1 &

/data/minio-data 是 MinIO 实际存放文件的位置,9001 是 console 的端口,9000 是 API Server 的端口。 console 如果不指定端口,每次运行会随机使用一个端口,不方便我们用 Nginx 代理。

代理

在机器上,使用 Nginx 代理 MinIO,增加如下配置

server {
    listen 80;
    server_name minio.wu.run;
    location / {
    proxy_pass http://127.0.0.1:9000;
    }
}

server {
    listen 80;
    server_name console.minio.wu.run;
    client_max_body_size 2048m;
    location / {
    proxy_pass http://127.0.0.1:9001;
    }
}

域名解析

在云厂商配置 DNS 域名解析

这样就可以通过 http://console.minio.wu.run/ 域名访问 MinIO 控制台了。

注意事项

  • 以上例子,是单机模式,不保证 HA。为了 HA,需要多节点部署
  • 如果将 MinIO Bucket 的访问策略设为 Public,一定要删除 "s3:ListBucket",否则别人可以看到 Bucket 下所有文件名,并拿到所有文件。一般情况下,把 Bucket 设为 Private 即可