アセットを別のオリジンにルーティングする
最終更新日 2019-05-23
お客様によっては、複数のオリジンサーバーにアセットを保存している場合や、お客様が提供する基準 (アセットの種類、ファイルディレクトリ、ホストヘッダーなど) に基づいて、さまざまなリクエストを特定の異なるサーバーにルーティングする必要がある場合があります。Fastly では、VCL に if ステートメントのブロックを追加するだけで、オリジンに条件を設定することができます。
基本設定:オリジンごとに条件を作成する
- Fastly コントロールパネルにログインします。
- Home ページから、該当するサービスを選択します。検索ボックスを使用して ID、名前、またはドメインで検索することができます。
- Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。ドメインページが表示されます。
- Origins をクリックします。Origins ページが表示されます。
-
オリジンサーバーの名前の右側にある Attach a condition をクリックします。Create a new request 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 ウィンドウが表示されます。
- 以下の要領で 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 Snippets ページが表示されます。
-
Create Snippet をクリックします。Create a VCL snippet ページが表示されます。
- Name フィールドに適切な名前 (例:
Send Images to Images Backend
) を入力します。 - Type セクションで within subroutine を選択します。
- Select subroutine メニューから recv (vcl_recv) を選択します。
-
VCL フィールドに以下の条件を追加します。
1 2 3
if (req.url.ext ~ "(jpg|png|gif)") { set req.backend = Image_Backend; }
- Create をクリックすると、スニペットが作成されます。
- Activate ボタンをクリックして設定変更をデプロイします。