AWSはCloudFrontを介したgzipファイルをサポートするようになりました
圧縮ファイルの提供 のすべての手順に従いましたが、gzippingが機能していません。
CloudFrontがオリジンとして使用しているウェブサイトとしてS3バケットを設定しています。
Compress Objects Automatically
が有効になっていますapplication/javascript
やtext/css
などの正しいコンテンツタイプのファイルを提供していますContent-Length
でファイルを提供しますこれらすべてにもかかわらず、私はgzipを機能させることができません。 SSLを含む他のすべてが完全に機能するようになりました。次のサイトにアクセスできます: https://formulagrid.com/
chromeコンソールを開くと、S3から提供されているファイルがgzip圧縮されていないことがわかります。Googleフォントなどのgzip圧縮されたファイルは私が取得しているものだけです。他のCDNから。
今日も同じエラーが発生し、S3バケットにCORSルールを追加して解決しました。このルールにより、Content-LengthヘッダーがCloudfrontに送信され、コンテンツをgzip圧縮できるようになります。
S3>バケット>パーミッション> CORS設定
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
<AllowedHeader>Content-Length</AllowedHeader>
</CORSRule>
</CORSConfiguration>
クレジットはRobertEllisonに送られます: http://ithoughthecamewithyou.com/post/enable-gzip-compression-for-Amazon-s3-hosted-website-in-cloudfront
私の知る限り、これは文書化されていない要件のようです。