请注意文章时效(2024-03-17)
【Minio 是什么】
Minio 是一款兼容 Amazon S3 API 的高性能的对象存储服务器。如:aws 的 s3 存储、阿里云的 OSS、腾讯的 COS 等都属于 S3 协议的存储(也就是说:有了 minio,可以弃用各种收费的对象存储和 CDN 等)。
【NAS 部署 Minio 适用人群】
同时拥有一台云服务器以及一台有带公网 IP 的 NAS 用户。
【为什么 NAS 部署 Minio】
云服务器带宽太低,空间不够,用来做穿透太鸡肋。本地 NAS 是 7*24 小时开机,空间足够大,但没有 80 和 443 端口。那么我们可以将网站部署在云服务器上,然后把对象存储建立在本地 NAS 上。网站访问速度将大大提高,本地 NAS 也存储了关键数据。
【适合适用 minio 的网站或应用】
wordpress 博客,memos 笔记,思源笔记,chevereto 图床,兰空图床,alist 网盘等一切支持部署 s3 兼容对象存储的应用。
安装教程:(在群晖 DSM7.0 系统下搭建)
1.第一步,新建、映射两个文件夹,config 和 data,我的路径:/volume1/docker/minio。
2.第二步,新建 docker-compose.yml,运行容器
docker-compose.yml 内容如下:
version: "3.7"
services:
minio:
image: minio/minio
container_name: minio
command: server --address ":9000" --console-address ":9090" /data # 指定服务端口和管理端口
ports:
- 9080:9000 # :前面的自行定义,服务端口:API: http://IP:9080
- 9090:9090 # :前面的自行定义,管理端口:http://IP:9090
volumes:
- ./data:/data # 数据目录
- ./config:/root/.minio # TLS 密钥和证书存放在 .config/certs
environment:
- MINIO_ROOT_USER=admin # 用户名,自行修改
- MINIO_ROOT_PASSWORD=password # root密码,自行修改
restart: unless-stopped # 总是重启容器
运行容器:
docker-compose up -d
3.第三步,浏览器打开 minio 网址 http://IP:9090,如下,输入之前设置的账号密码进入。
4.第四步,新建用户
(1)创建用户(Create User)例:siyuan
(2)创建组(Create Group)并关联用户。例:vps 关联 siyuan
\保存
(3)服务帐户/创建访问密钥 Create Access Key
将会下载一个 credentials.json 证书文件,打开后有密钥稍后配置思源笔记会用的。
5.第五步,创建桶(Create Bucket)。
6.第六步,恭喜!可以上传文件了!。
7.第七步,创建地区。 点击左侧 settings--点击 region--在 server location 输入 cn,点 save。(意思地区是 cn)
网页顶部会提示重启生效,点击 Restart。等待小会,minio 重启完成,刷新网页即可。
至此 minio 所有的配置已经完成。你的数据如下:
Endpoint: http://域名:9080
地区 region:cn
access key:在第四步创建的
secret key:在第四步创建的
存储桶 Bucket:blog(第五步创建的名字,例:siyuan)
Url 前缀:http://域名:9090/siyuan #siyuan 是创建桶的名称,你可以自行定义
部署完成后,minio 不需要登录,保持 docker 容器开着就行。如果要给不同应用不同的存储桶,只需额外创建对应存储桶就行(第五步),其他数据不需要变。
需要注意的是,如果你需要部署对象存储的网站是 https,需要在 Nginx Proxy Manager 里将 9080 端口进行反代,并进行端口映射。例如端口映射到 99,那你的 endpoint 就变成了 https://域名:99,同理 url 就变成了 https://域名:99/siyuan。
# Allow special characters in headers
ignore_invalid_headers off;
# Allow any size file to be uploaded.
# Set to a value such as 1000m; to restrict file size to a specific value
client_max_body_size 0;
# Disable buffering
proxy_buffering off;
proxy_request_buffering off;
location / {
proxy_set_header Host $http_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;
proxy_connect_timeout 300;
# Default is HTTP/1, keepalive is only enabled in HTTP/1.1
proxy_http_version 1.1;
proxy_set_header Connection "";
chunked_transfer_encoding off;
proxy_pass http://minio:9000;
}
你需要配置对象存储的网站,例如博客,图床。填入以上数据即可。
附:官方文档:https://www.minio.org.cn/docs/minio/kubernetes/upstream/index.html
思源笔记配置界面
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于