高負載時從 s3 儲存桶請求資料的存取被拒絕

高負載時從 s3 儲存桶請求資料的存取被拒絕

我正在嘗試從 s3 儲存桶中獲取靜態文件,以防出現 502 錯誤。

這就是我為請求配置 nginx 的方式:

error_page 502 = @static;
location / {
  index index.php;
  try_files $uri $uri/ /index.php;
# return 502;
  proxy_intercept_errors on;
}

location @static{
  rewrite ^/name/(.*) ^/bucket_name/$1 break;
  proxy_pass http://s3.amazonaws.com;
}

當 nginx 無法處理巨大負載時,會傳送 502 錯誤。

現在,當我取消註解「return 502」語句並註解 try_files 語句時,一切都很好,並且資料由 s3 儲存桶正確提供。

但是,對於上面給出的程式碼,當我使用 loader.io 增加網站上的負載時(我已檢查它會產生 502 錯誤),瀏覽器會收到 403 錯誤(403 Forbidden)。

並且這種訊息顯示在瀏覽器上,

<Error>
  <Code>AccessDenied</Code>
  <Message>Access Denied</Message>
  <RequestId>some_string</RequestId>
  <HostId>
    something
  </HostId>

當我取消註解「return 502」並註解「try_files 語句」並增加負載時,s3 仍然可以正確提供檔案。

知道嗎,為什麼我會因負載過重而收到 403 錯誤,但手動返回 502 時卻沒有出現此類錯誤?另外,在重負載(502 錯誤)的情況下,是否有其他替代方式從 s3 儲存桶取得資料?另外,手動發送的 502 錯誤和因負載過重而發送的 502 錯誤是否相同?

相關內容