我使用 Amazon Simple Storage Service (Amazon S3) 來託管靜態網站,並使用 Amazon CloudFront 為網站提供服務。網站無法使用,我想找出原因。
在開始之前,請確認您可以存取網際網路。此外,請確認您的 CloudFront 分佈上指定的原始網域名稱指向正確的 S3 儲存貯體,沒有拼字錯誤或其他錯誤。
如果您可以存取網際網路,並且來源網域名稱正確,請使用以下疑難排解步驟來解決您的問題。
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
當存在權限問題導致您的網站無法顯示時,您會收到 403 拒絕存取錯誤。若要解決此問題,請參閱為什麼當我使用 Amazon S3 網站端點作為 CloudFront 分佈的來源時,我會收到「403 拒絕存取」錯誤?
**重要:**請務必檢查您網站 S3 儲存貯體的封鎖公開存取設定。這些設定可以封鎖對您網站的匿名請求。封鎖公開存取設定可以套用於 AWS 帳戶或單一儲存貯體。
當請求指向不存在的網站物件時,您會收到 404 找不到錯誤。
若要解決此問題,請確認組態中的以下設定:
如果回應中存在內部錯誤,則內部服務問題可能會影響您的網站。檢查 AWS Health 儀表板是否有服務中斷和開放事件。
**注意:**大多數 AWS 服務都是區域性的,因此請務必依照您資源所在的 AWS 區域進行搜尋。
當 CloudFront 無法正確呈現或傳送您的網站內容時,您可能會收到損壞的 JavaScript 或缺失的 CSS 檔案。
若要解決此問題,請執行下列動作:
正確上傳網站資源,並確保網站 HTML 中的網址路徑正確。
對於混合內容錯誤,請使用 HTTPS 而不是 HTTP 來載入所有 JavaScript 和 CSS 資源檔案。
最佳做法是使用回應標頭政策並根據請求標頭快取內容。
如果未顯示更新後的網站內容,請執行以下 create-invalidation 命令來建立新的無效判定:
aws cloudfront create-invalidation --distribution-id EDFDVBD6EXAMPLE --paths "/example-path/index.html"
**注意:**將 EDFVBD6EXAMPLE 替換為您 CloudFront 分佈的 ID。如需詳細資訊,請參閱如何從 CloudFront 移除快取檔案?
Web 分佈診斷
對 CloudFront 中的錯誤回應狀態代碼進行疑難排解