
我正在嘗試從 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 錯誤是否相同?