?發現加了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等等。