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

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

これらの変数を使ってオリジンに関する情報を取得する VCL スニペットを作成し、リモートログストリーミングを設定して、その情報を保存することができます。

オリジン関連情報の取得

以下の通常の手順で VCL スニペットを作成し、オリジンに関する情報を取得します。

  1. Fastly コントロールパネルにログインします。
  2. Home ページから、適切なサービスを選択します。検索ボックスで ID、名称、ドメインによる検索が行えます。
  3. Edit configuration をクリックし、アクティブなバージョンをクローンするオプションを選択します。
  4. VCL snippets をクリックします。

  5. Create Snippet をクリックします。

  6. 以下の要領で、Create a VCL snippet の各フィールドに入力します。

    • Name フィールドに適切な名前を入力します (例:Retrieve-Origin-Information)。
    • Type メニューで within subroutine を選択します。
    • Select subroutine メニューから、fetch (vcl_fetch) を選択します。
    • 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;
  7. Create をクリックしてスニペットを作成します。

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

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

  1. VCL snippets をクリックします。

  2. Create Snippet をクリックします。

  3. 以下の要領で、Create a VCL snippet の各フィールドに入力します。

    • Name フィールドに適切な名前を入力します (例:Remove-Origin-Information)。
    • Type のセクションで within subroutine を選択します。
    • Select subroutine メニューから、deliver (vcl_deliver) を選択します。
    • VCL フィールドに以下の VCL ロジックを追加します。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    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;
  4. Create をクリックしてスニペットを作成します。

注意

VCL が処理される際に、beresp.http.Your-Backend-Name のようなレスポンスヘッダーが vcl_fetch に存在する場合、それに対応するレスポンスヘッダー resp.http.Your-Backend-Namevcl_deliver に存在するため、デフォルトでログに記録されます。これは、レスポンスの出力にレスポンスヘッダーが含まれ、オリジンに関する情報 (IP アドレスやポート番号、オリジンの名前など) が表示されることを意味します。幸い、リクエストヘッダーがクライアントに返されることはありませんが、その情報は vcl_log でアクセスすることが可能です。

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

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

注意

オリジンに関する情報を取得するためにリモートログストリーミングを設定する場合、VCL がオリジンシールドノードとエッジノードで2回実行されることにご留意ください。つまり (オリジンシールドノードからの) 1つ目のログにはオリジンの情報が、(エッジノードからの) 2つ目のログにはオリジンシールドの情報が記録されることになります。


翻訳についての注意事項
このガイドは役に立ちましたか?

このフォームを使用して機密性の高い情報を送信しないでください。サポートが必要な場合は、サポートチームまでご連絡ください。このフォームは reCAPTCHA によって保護されており、Google のプライバシーポリシー利用規約が適用されます。