アセットを別のオリジンにルーティングする
最終更新日 2019-05-23
お客様によっては、複数のオリジンサーバーにアセットを保存している場合や、お客様が提供する基準 (アセットの種類、ファイルディレクトリ、ホストヘッダーなど) に基づいて、さまざまなリクエストを特定の異なるサーバーにルーティングする必要がある場合があります。Fastly では、VCL に if ステートメントのブロックを追加するだけで、オリジンに条件を設定することができます。
基本設定:オリジンごとに条件を作成する
- Fastly コントロールパネルにログインします。
- Home ページから、適切なサービスを選択します。検索ボックスで ID、名称、ドメインでの検索が行えます。
- Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。ドメインページが表示されます。
- Origins をクリックします。Origins ページが表示されます。
オリジンサーバーの名前の右側にある Attach a condition をクリックします。新しいリクエスト条件の作成 ウィンドウが表示されます。
Create a new request condition フィールドを以下のように記入してください。
- Nameフィールドに、分かりやすい条件の名前を入力します。
- Apply if フィールドに、オリジンサーバーに適用したい条件を入力します。例えばホストに
req.http.host ~ "www.example.com"
と入力します。また、コンテンツタイプ/URL について、req.url ~ ".(jpg|png|gif)($|\?)"
と入力するとします。
Save and apply to ボタンをクリックします。新しく設定した条件が Origins ページに表示されます。
- Activate ボタンをクリックして設定変更をデプロイします。
バックアップ設定:ヘッダーの作成
オリジンにすでに条件が割り当てられている場合があります。オリジンに対する複数のリクエスト条件を「and」や「or」でグループ化することはできますが、各オリジンに付加できる条件ルールは1つのみです。リクエスト条件をグループ化せずに個別に適用したい場合は、代わりにヘッダールールを使用して、アセットを別のオリジンにルーティングすることができます。
- Fastly コントロールパネルにログインします。
- Home ページから、適切なサービスを選択します。検索ボックスで ID、名称、ドメインでの検索が行えます。
- Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。ドメインページが表示されます。
- Content をクリックします。Content ページが表示されます。
Create header ボタンをクリックします。Create a header ページが表示されます。
以下の要領では、Create a header ページの各フィールドに入力します。
- Name フィールドに、
Image Backend
(または意味のある任意の名前) と入力します。 - Type メニューから Request を選択し、Action メニューから Set を選択します。
- Destination フィールドに
backend
と入力します。 - Source フィールドに
Image_Backend
と入力します。(これは、お客様のグローバルオリジンサーバーの名前と一致する必要があります。正確な名前は VCL で確認できます。ページ上部の VCL ボタンをクリックします。) - Ignore if set メニューから No を選択します。
- Priority フィールドに
10
を入力します。
- Name フィールドに、
Create ボタンをクリックします。Content ページに新しいヘッダーが表示されます。
Content ページで、先ほど作成したヘッダーの隣にある Attach a condition をクリックします。新しいリクエスト条件の作成 ウィンドウが表示されます。
Create a new request condition フィールドを以下のように記入してください。
- Name フィールドに、
Redirect Images
(または意味のある任意の名前) と入力します。 - Apply if フィールドに、
req.url ~ "\.(jpg|png|gif)($|\?)"
と入力します。
- Name フィールドに、
Save and apply to ボタンをクリックします。Content ページに条件が表示されます。
- Activate ボタンをクリックして設定変更をデプロイします。
ヒント
条件の設定の詳細については、ガイドをご参照ください。
VCL スニペットを使用してオリジンを指定する
VCLスニペットを使用してオリジンを指定することもできます。オリジンを設定したら、条件付きでそのオリジンにトラフィックをルーティングすることができます。
- Fastly コントロールパネルにログインします。
- Home ページから、適切なサービスを選択します。検索ボックスで ID、名称、ドメインでの検索が行えます。
- Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。ドメインページが表示されます。
VCL Snippets のリンクをクリックします。VCL スニペットのページが表示されます。
Create Snippet をクリックします。Create a VCL スニペットページが表示されます。
Name フィールドに、適切な名前 (例:
Send Images to Images Backend
) を入力します。Type のセクションで within subroutine を選択します。
Select subroutine メニューから、recv (
vcl_recv
) を選択します。VCL フィールドに、以下の条件を追加します:
1if (req.url.ext ~ "(jpg|png|gif)") {2 set req.backend = Image_Backend;3}Create をクリックしてスニペットを作成します。
- Activate ボタンをクリックして設定変更をデプロイします。