MinIO 是一个高性能的分布式对象存储系统,专为大规模数据存储和访问设计。它兼容 Amazon S3 API,适合存储非结构化数据,如照片、视频、日志文件等。MinIO 采用分布式架构,支持横向扩展,具备高可用性和数据一致性。它易于部署和管理,适合云原生和容器化环境,常用于大数据分析、备份和 AI/ML 工作负载。MinIO 开源且社区活跃,也提供企业版支持。官网:
1. 安装部署
安装推荐使用docker的方式,方便快捷,docker的安装教程:
官网的容器安装教程:
先创建一个目录作为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_USER
和 MINIO_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
评论区