侧边栏壁纸
博主头像
月明星稀

无心而为

  • 累计撰写 4 篇文章
  • 累计创建 14 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

minio自建OSS并配置域名

月明星稀
2025-02-04 / 0 评论 / 1 点赞 / 26 阅读 / 0 字

MinIO 是一个高性能的分布式对象存储系统,专为大规模数据存储和访问设计。它兼容 Amazon S3 API,适合存储非结构化数据,如照片、视频、日志文件等。MinIO 采用分布式架构,支持横向扩展,具备高可用性和数据一致性。它易于部署和管理,适合云原生和容器化环境,常用于大数据分析、备份和 AI/ML 工作负载。MinIO 开源且社区活跃,也提供企业版支持。官网:

https://min.io/

1. 安装部署

安装推荐使用docker的方式,方便快捷,docker的安装教程:https://803366.xyz/2025/docker-installation-and-instruction

官网的容器安装教程:

https://min.io/docs/minio/container/index.html

先创建一个目录作为minio数据的存储目录,然后启动容器挂载该目录:

mkdir -p ~/minio/data

docker run \
   -p 9000:9000 \
   -p 9001:9001 \
   --name minio \
   -v ~/minio/data:/data \
   -e "MINIO_ROOT_USER=ROOTNAME" \
   -e "MINIO_ROOT_PASSWORD=CHANGEME123" \
   quay.io/minio/minio server /data --console-address ":9001"

端口默认映射到9000和9001,如果有需要可以自己修改,宿主机端口修改 : 前面的数字。

修改 MINIO_ROOT_USERMINIO_ROOT_PASSWORD ,作为之后后台登录的用户名和密码。

启动之后打开 http://[ip]:9001 就可以登录到后台了

2. 创建bucket和keys

在这两个地方分别创建bucket和key,keys给API用。

创建好之后按照下面的步骤修改Access Policy,否则图片无法访问。

3. 配置域名访问

上面我们都还是通过ip+port的方式访问console和API,现在给他们配置域名,如果不介意就可以跳过了。

通过nginx反代来配置域名,先在域名提供商做好DNS解析,目标地址为部署的服务器ip,然后在服务器上安装nginx

apt update && apt install nginx

修改配置文件 /etc/nginx/nginx.conf ,在http{...}里面加上两条规则:

server {
    server_name pics.803366.xyz;

    location / {
        proxy_pass http://localhost:9000/;
    }
}

server {
    server_name minio.803366.xyz;

    location / {
        proxy_pass http://localhost:9001/;

        # 关键:WebSocket 支持配置
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        # 标准代理头配置
        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;

        # 长连接超时设置(防止 WebSocket 断开)
        proxy_read_timeout 86400s;
        proxy_send_timeout 86400s;
    }
}

server_name就是刚刚取得域名,pics是API域名,minio是console域名。console有需要ws协议的接口,因此还需要配置ws。

最后再用certbot生成免费的证书就可以https访问了。

certbot --nginx -d pics.803366.xyz -d minio.803366.xyz

1

评论区