@TOC
问题背景
minio获取私有链接秘钥报错SignatureDoesNotMatch
<Error>
<Code>SignatureDoesNotMatch</Code>
<Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>
<Key>836988913707909120.pdf</Key>
<BucketName>english</BucketName>
<Resource>836988913707909120.pdf</Resource>
<RequestId>17871A50E48C3ED3</RequestId>
<HostId>d81c53e4-6ba8-45a4-9918-764ac5fe0122</HostId>
</Error>
解决方案
minio获取public访问类型的时候,不用区分ip,但是使用private的时候会区分ip,MinioClient在设置endpoint时获取私有链接,如果访问使用nginx就会报以上错误,minio官方也提出了解决方案,按照推荐配置,加入红框的配置
最后,我的配置如下
#minio服务
upstream minioserver {
server 192.168.128.102:9007;
server 192.168.128.103:9007;
server 192.168.128.104:9007;
server 192.168.128.105:9007;
}
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_set_header X-NginX-Proxy true;
# This is necessary to pass the correct IP to be hashed
real_ip_header X-Real-IP;
proxy_connect_timeout 300;
# To support websockets in MinIO versions released after January 2023
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
chunked_transfer_encoding off;
root /usr/share/nginx/html;
index index.html index.htm;
proxy_pass http://minioserver;
}
作为程序员第 247 篇文章,每次写一句歌词记录一下,看看人生有几首歌的时间,wahahaha ...