圧縮されたオブジェクトを自動的に提供するために Amazon CloudFront ディストリビューションを使用していますが、コンテンツはビューワーで圧縮されません。これをトラブルシューティングするにはどうすればよいですか?
解決方法
CloudFront の設定を確認する
ビューワーの設定を確認する
まず、
HTTP Archive (HAR) をキャプチャして、ブラウザから送信された詳細なリクエストヘッダーに関する情報を取得します。その後、次を確認します。
- リクエストが HTTP 1.0 よりも上位の HTTP バージョンを使用していること。HTTP の下位バージョンでは、CloudFront は Accept-Encoding ヘッダーを削除し、レスポンスでオブジェクトを圧縮しません。
- Accept-Encoding ヘッダーはビューワーリクエストに含まれており、gzip または br 値のいずれかが含まれていること。
オリジンサーバーが CloudFront に返すレスポンスを検証する
オリジンにアクセスできる場合は、オリジンサーバーが CloudFront に返すレスポンスを確認します。その後、次を確認します。
- オリジンが Content-Encoding ヘッダーを返していないこと。このヘッダーは、応答が既に圧縮されていることを示します。
- レスポンス Content-Length がオリジンからのレスポンスに存在しており、サポートされている 1,000 バイトから 10,000,000 バイトの範囲内であること。
- ファイルタイプが圧縮のためにサポートされていること。
- レスポンスの HTTP ステータスコードが 200、403、404 のいずれかであること。
該当のオブジェクトについてキャッシュヒットを見つけたら、キャッシュから無効にします。CloudFront は、イメージの圧縮設定をオンにしても、エッジロケーションで既にキャッシュされているオブジェクトを圧縮しません。CloudFront は、エッジキャッシュからリクエストが提供されると、「X-Cache: Hit from CloudFront」(X-Cache: CloudFront からのヒット) レスポンスを返します。