docker安裝 MinIO對象存儲(chǔ)(已解決 走nginx代理情況下, SignatureDesNotMatch簽名不一致問題)
MinIO對象存儲(chǔ)
英文文檔 中文文檔
MinIO 是一個(gè)基于GNU AGPL v3開源協(xié)議的對象存儲(chǔ)服務(wù)。它兼容亞馬遜S3云存儲(chǔ)服務(wù)接口,非常適合于存儲(chǔ)大容量非結(jié)構(gòu)化的數(shù)據(jù),例如圖片、視頻、日志文件、備份數(shù)據(jù)和容器/虛擬機(jī)鏡像等,而一個(gè)對象文件可以是任意大小,從幾kb到最大5T不等。
MinIO是一個(gè)非常輕量的服務(wù),可以很簡單的和其他應(yīng)用的結(jié)合,類似 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訪問接口(默認(rèn)9000,可自定義)
--console-address 指定頁面儀表盤訪問地址
更新文檔時(shí)使用的版本minio/minio:RELEASE.2022-06-25T15-50-16Z
時(shí)間:2022-06-25號版本
警告:!!! 在內(nèi)網(wǎng)連接 MinIO 時(shí)我們使用的是內(nèi)網(wǎng) IP,這導(dǎo)致使用 PresignedPutObject或generatePresignedUrl 生成的 分享URL 也是內(nèi)網(wǎng) IP,外網(wǎng)不能直接訪問。
解決方法:1.生成簽名的url轉(zhuǎn)換成外網(wǎng)監(jiān)聽的IP和端口
2.這個(gè)時(shí)候?qū)Υ颂幍?1000端口的nginx配置要設(shè)置為不攜帶HOST模式!!!
這樣就解決了外網(wǎng)訪問簽名不對的問題
參考說明:http://slack.minio.org.cn/question/202
警告:!!! 外網(wǎng)訪問局域網(wǎng)通過nginx代理的docker部署的minio時(shí)出現(xiàn)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設(shè)置Nginx代理](https://docs.min.io/docs/setup-nginx-proxy-with-minio.html)
2、如果你已經(jīng)有私鑰和公鑰證書,你需要將它們拷貝到Minio的config/certs/CAs/文件夾,分別取名為private.key 和 public.crt。
3、如果這個(gè)證書是被證書機(jī)構(gòu)簽發(fā)的,public.crt應(yīng)該是服務(wù)器的證書,任何中間體的證書以及CA的根證書的級聯(lián)。
為夢想不止不休!

浙公網(wǎng)安備 33010602011771號