docker安装 MinIO对象存储(已解决 走nginx代理情况下, SignatureDesNotMatch签名不一致问题)
MinIO对象存储
英文文档 中文文档
MinIO 是一个基于GNU AGPL v3开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。
MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。
1、安装
$ docker run -d \
-p 11000:11000 \
-p 11001:11001 \
-v /opt/docker/minio/data:/data \
-v /opt/docker/minio/config:/root/.minio \
-e "MINIO_ROOT_USER=根用户名" \
-e "MINIO_ROOT_PASSWORD=根密码" \
--name minio \
minio/minio server /data --address ":11000" --console-address ":11001"
说明:
--address 指定API访问接口(默认9000,可自定义)
--console-address 指定页面仪表盘访问地址
更新文档时使用的版本minio/minio:RELEASE.2022-06-25T15-50-16Z
时间:2022-06-25号版本
警告:!!! 在内网连接 MinIO 时我们使用的是内网 IP,这导致使用 PresignedPutObject或generatePresignedUrl 生成的 分享URL 也是内网 IP,外网不能直接访问。
解决方法:1.生成签名的url转换成外网监听的IP和端口
2.这个时候对此处的11000端口的nginx配置要设置为不携带HOST模式!!!
这样就解决了外网访问签名不对的问题
参考说明:http://slack.minio.org.cn/question/202
警告:!!! 外网访问局域网通过nginx代理的docker部署的minio时出现API签名不一致解决
解决方法:携带host,非80/433端口的Host用 $http_host 代替 $host
server {
listen 11000 ;
location / {
proxy_pass http://xxx.xxx.xxx.xxx:11000 ;
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-Host $http_host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
警告:!!! 非root用户配置需要参考 [为MinIO Server设置Nginx代理](https://docs.min.io/docs/setup-nginx-proxy-with-minio.html)
2、如果你已经有私钥和公钥证书,你需要将它们拷贝到Minio的config/certs/CAs/文件夹,分别取名为private.key 和 public.crt。
3、如果这个证书是被证书机构签发的,public.crt应该是服务器的证书,任何中间体的证书以及CA的根证书的级联。
为梦想不止不休!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示