オリジンの名前、IP アドレス、ポートのトラッキング

オリジンに関連する情報をトラッキングできると、エラーのトラブルシューティングやリクエストが期待通りに処理されているか確認するのに役立ちます。Fastly では、オリジンに関する情報の確認とトラッキングを可能にする以下の3つの VCL 変数を利用できます。

  • beresp.backend.name
  • beresp.backend.port
  • beresp.backend.ip

これらの変数を使ってオリジンに関する情報を取得する 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 フィールドに適切な名前を入力します (例: Retrieve-Origin-Information)。
  7. Type のセクションで within subroutine を選択します。Select subroutine メニューが表示されます。
  8. Select subroutine メニューから fetch (vcl_fetch) を選択します。
  9. VCL フィールドに以下の VCL ロジックを追加します。

    1
    2
    3
    
    # save the variables for access in deliver
    set beresp.http.Your-Backend-Name = beresp.backend.name;
    set beresp.http.Your-Backend-IP-Port = beresp.backend.ip ":" beresp.backend.port;
    
  10. Create をクリックすると、スニペットが作成されます。

レスポンスヘッダーをリクエストヘッダーに変更する

情報をログに記録する前に、レスポンスヘッダーをリクエストヘッダーに変更する別のレギュラー VCL スニペットを作成します。

  1. VCL snippets のリンクをクリックします。VCL snippets ページが表示されます。
  2. Create snippet をクリックします。Create a VCL snippet ページが表示されます。
  3. Name フィールドに適切な名前を入力します (例: Remove-Origin-Information)。
  4. Type のセクションで within subroutine を選択します。Select subroutine メニューが表示されます。
  5. Select subroutine メニューから deliver (vcl_deliver) を選択します。
  6. VCL フィールドに以下の VCL ロジックを追加します。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    if (fastly_info.state ~ "(MISS|PASS)") {
      # only on a miss or pass
      # save the responses back to req.request because
      # request headers are not sent back to the client
      set req.http.Your-Backend-Name = resp.http.Your-Backend-Name;
      set req.http.Your-Backend-IP-Port = resp.http.Your-Backend-IP-Port;
      }
    
    # remove the identifying information from the response
    unset resp.http.Your-Backend-Name;
    unset resp.http.Your-Backend-IP-Port;
    
  7. Create をクリックすると、スニペットが作成されます。

リモートログストリーミングの設定

スニペットの作成後、トラッキング目的でリモートログストリーミングを設定することができます。リモートログストリーミングのガイドに従って設定したログエンドポイントの Log format フィールドに req.http.Header-Name を追加することでこれが可能です。上記の例では req.http.Your-Backend-Namereq.http.Your-Backend-IP-Port を追加することになります。変更した内容を確認したら、Activate ボタンをクリックしてサービスに設定変更を反映させます。

Back to Top