アセットを別のオリジンにルーティングする

お客様によっては、複数のオリジンサーバーにアセットを保存している場合や、お客様が提供する基準 (アセットの種類、ファイルディレクトリ、ホストヘッダーなど) に基づいて、さまざまなリクエストを特定の異なるサーバーにルーティングする必要がある場合があります。Fastly では、VCL に if ステートメントのブロックを追加するだけで、オリジンに条件を設定することができます。

基本設定:オリジンごとに条件を作成する

  1. Fastly コントロールパネルにログインします。
  2. All services ページから、該当するサービスを選択します。検索ボックスを使用して ID、名前、またはドメインで検索することができます。
  3. Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。ドメインページが表示されます。
  4. Origins をクリックします。Origins ページが表示されます。
  5. オリジンサーバーの名前の右側にある Attach a condition をクリックします。Create a new request condition ウィンドウが表示されます。

    ホストをリダイレクトする新しい条件

  6. 以下の要領で Create a new request condition 設定画面の各フィールドに入力します。
    • Name フィールドに、分かりやすい条件の名前を入力します。
    • Apply if フィールドに、オリジンサーバーに適用したい条件を入力します。例えばホストに req.http.host ~ "www.example.com" と入力します。また、コンテンツタイプ/URL について、req.url ~ ".(jpg|png|gif)($|\?)" と入力するとします。
  7. Save and apply to ボタンをクリックします。新しく設定した条件が Origins ページに表示されます。
  8. Activate ボタンをクリックして設定変更をデプロイします。

バックアップ設定:ヘッダーの作成

オリジンにすでに条件が割り当てられている場合があります。オリジンに対する複数のリクエスト条件を「and」や「or」でグループ化することはできますが、各オリジンに付加できる条件ルールは1つのみです。 リクエスト条件をグループ化せずに個別に適用したい場合は、代わりにヘッダールールを使用して、アセットを別のオリジンにルーティングすることができます。

  1. Fastly コントロールパネルにログインします。
  2. All services ページから、該当するサービスを選択します。検索ボックスを使用して ID、名前、またはドメインで検索することができます。
  3. Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。ドメインページが表示されます。
  4. Content をクリックします。Content ページが表示されます。
  5. Create header ボタンをクリックします。Create a header ページが表示されます。

    Create a header ページ

  6. 以下の要領で Create a header ページの各フィールドに入力します。
    • Name フィールドには、Image Backend (または意味のある任意の名前) を入力します。
    • Type メニューから Request を選択し、Action メニューから Set を選択します。
    • Destination フィールドに backend と入力します。
    • Source フィールドに Image_Backend と入力します。(これは、お客様のグローバルオリジンサーバーの名前と一致する必要があります。正確な名前は VCL で確認できます。ページ上部の VCL ボタンをクリックします。)
    • Ignore if set メニューから No を選択します。
    • Priority フィールドには 10 と入力します。
  7. Create ボタンをクリックします。Content ページに新しいヘッダーが表示されます。
  8. Content ページで、先ほど作成したヘッダーの隣にある Attach a condition をクリックします。Create a new request condition ウィンドウが表示されます。

    リダイレクトの新しい条件

  9. 以下の要領で Create a new request condition 設定画面の各フィールドに入力します。
    • Name フィールドには、Redirect Images (または意味のある任意の名前) を入力します。
    • Apply if フィールドに req.url ~ "\.(jpg|png|gif)($|\?)" と入力します。
  10. Save and apply to ボタンをクリックします。Content ページに条件が表示されます。
  11. Activate ボタンをクリックして設定変更をデプロイします。

VCL スニペットを使用してオリジンを指定する

VCL スぺニットを使用してオリジンを指定することもできます。オリジンを設定したら、条件付きでそのオリジンにトラフィックをルーティングすることができます。

  1. Fastly コントロールパネルにログインします。
  2. All services ページから、該当するサービスを選択します。検索ボックスを使用して ID、名前、またはドメインで検索することができます。
  3. Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。ドメインページが表示されます。
  4. VCL Snippets をクリックします。VCL Snippets ページが表示されます。
  5. Create Snippet をクリックします。Create a VCL snippet ページが表示されます。

    バックエンドリダイレクト

  6. Name フィールドに適切な名前 (例:Send Images to Images Backend) を入力します。
  7. Type セクションで within subroutine を選択します。
  8. Select subroutine メニューから recv (vcl_recv) を選択します。
  9. VCL フィールドに以下の条件を追加します。

    1
    2
    3
    
    if (req.url.ext ~ "(jpg|png|gif)") {
      set req.backend = Image_Backend;
    }
    
  10. Create をクリックすると、スニペットが作成されます。
  11. Activate ボタンをクリックして設定変更をデプロイします。
Back to Top