自動圧縮を有効にする
最終更新日 2022-11-02
Fastly の圧縮機能は、オリジンからコンテンツを動的にフェッチし、Brotli または gzip (ユーザーのリクエスト形式に応じます) を使用して圧縮してからキャッシュします。圧縮機能を有効にする方法は2つあります。
- デフォルトの圧縮ポリシーを有効にすると、拡張子が
css
、js
、html
、eot
、ico
、otf
、ttf
、json
、またはsvg
のファイルのコンテンツが圧縮されます。 - 高度な圧縮ポリシーを設定することで、圧縮対象のコンテンツと条件をカスタマイズすることができます。
制約と注意事項
限定提供版のご利用の際、以下の点にご注意ください。
- 現在、API エンドポイントの名前は /gzip です。 限定提供版として提供されている間、自動圧縮の API については、gzip エンドポイントのドキュメントをご参照ください。ドキュメント化されている gzip API は、Brotli 圧縮を完全にサポートしています。
- Brotli をサポートしているブラウザでは、Brotli がデフォルトの圧縮形式として使用されます お客様の Fastly アカウントで Brotli 圧縮の利用が可能になると、クライアントの Brotli 対応ブラウザによって適切な Accept-Encoding ヘッダーが送信された場合、レスポンスに Brotli 圧縮がデフォルトで使用されます。複数の Accept-Encoding の値がある場合、gzip の使用が可能でも、Brotli が優先されます。
Fastly の圧縮機能の一般的な動作を考慮する際、以下の点に注意してください。
- 圧縮は、オリジンから圧縮されずに提供されたコンテンツに対してのみサポートされます。 自動圧縮を使用するには、圧縮が適用される前にコンテンツが解凍を必要としないことを確認します。
- 現在、圧縮機能はキャッシュ不可能なコンテンツをサポートしていません。 自動圧縮を使用するには、配信でコンテンツをキャッシュ できることを確認してください。Edge-Side Includes (ESI) 経由で動的に挿入されるまたは
x-compress-hint
などのディレクティブで圧縮されたコンテンツは、キャッシュ可能で、静的でもなく、自動圧縮と互換性がないことに留意してください。 - 現在、圧縮機能はセグメントキャッシュをサポートしていません。 自動圧縮を使用する場合は、セグメントキャッシュを無効にしてください。
圧縮を有効にする
ファイル拡張子やコンテンツタイプに基づいてキャッシュ可能なコンテンツを動的に圧縮するには、以下の手順に従って、デフォルトの圧縮ポリシーを有効にします。
- Fastly コントロールパネルにログインします。
- Home ページから、適切なサービスを選択します。検索ボックスで ID、名称、ドメインでの検索が行えます。
- Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。ドメインページが表示されます。
- Content をクリックします。Content ページが表示されます。
- Default compression policy をクリックすると、圧縮が有効になります。Fastly は Brotli (デフォルト) と gzip の両方の圧縮形式をサポートしています。選択される形式は、お使いのブラウザがサポートしている形式によって異なります。
- Activate ボタンをクリックして設定変更をデプロイします。
高度な圧縮ポリシーの設定
圧縮対象のコンテンツタイプや、圧縮が行われる条件を正確に指定する高度な圧縮ポリシーを設定するには、以下の手順に従ってください。
- Fastly コントロールパネルにログインします。
- Home ページから、適切なサービスを選択します。検索ボックスで ID、名称、ドメインでの検索が行えます。
- Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。ドメインページが表示されます。
- Content をクリックします。Content ページが表示されます。
- Set up advanced compression ボタンをクリックします。Create a compression policy ページが表示されます。
- Override these defaults リンクをクリックします。追加の圧縮フィールドが表示されます。
- 以下の要領で Create a compression policy ページの各フィールドに入力します。
- Name フィールドに新しい圧縮ポリシーの分かりやすい名前を入力します。
- Extensions フィールドに、動的に圧縮するファイルの各種類の拡張子をスペースで区切って入力します。ファイル拡張子を表す3文字または4文字の文字列のみを入力します。
- Content types フィールドには、動的に圧縮したいコンテンツの各コンテンツタイプをスペースで区切って入力します。正規表現は使用しないでください。
- Create ボタンをクリックします。新しい圧縮ポリシーが表示されます。
- Activate ボタンをクリックして設定変更をデプロイします。
自動正規化
リクエストヘッダーに基づいて出力を変更する際に圧縮が利用されることがよくあります。そのため、Fastly は受信したリクエストの Accept-Encoding
の値を正規化します。変更されたヘッダーは、ブラウザによってサポートされる最適な圧縮方式に基づき、エンコーディングタイプなし、または単一のエンコーディングタイプに設定されます。
具体的には、インバウンドリクエストで以下の手順を実行します。
User-Agent
が圧縮されたレスポンスへの対応に問題があるブラウザのパターンに一致した場合はAccept-Encoding
ヘッダーを削除します。Accept-Encoding
ヘッダーにbr
の文字列が含まれる場合は、値全体をbr
の文字列に設定します。Accept-Encoding
ヘッダーにgzip
の文字列が含まれる場合は、値全体をgzip
の文字列に設定します。Accept-Encoding
ヘッダーにdeflate
の文字列が含まれる場合は、値全体をdeflate
の文字列に設定します。- さもなければ
Accept-Encoding
ヘッダーを削除します。
この正規化プロセスにおいてヘッダー値が変更された場合、元の値は Fastly-Orig-Accept-Encoding
カスタムヘッダーで利用可能になります。