古詩詞大全網 - 個性簽名 - Amazon S3 V4簽名校驗錯誤

Amazon S3 V4簽名校驗錯誤

部署的ceph對象存儲使用了兼容Amazon s3的RGW網關,通過Amazon S3訪問對象存儲。為了網關的高可用和負載均衡,在RWG網關前面加了壹層nginx代理轉發。

?發現加了nginx之後V4簽名會報錯 The request signature we calculated does not match the signature you provided. Check your key and signing method. ,但是V2簽名不會報錯。

?經過打開工程debug日誌、nginx日誌、RGW網關日誌,最後發現是RGW網關接受到的請求和客戶端發出去的請求的頭參數 Host 不壹樣。

?在nginx中轉發http請求有個參數設置 proxy_set_header Host xxx; ,當我們使用以下形式的nginx轉發時:

?nginx默認使用的是基於IP的轉發,這樣服務端接收到的請求頭參數 Host 就變成了 127.0.0.1:8080 和 127.0.0.1:9000 。

?以上客戶端指的是nginx前壹級,服務端指的是nginx後壹級,如果有多級代理,都需要設置;也可以不是nginx,是例如Haproxy等等。