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

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

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

オリジン関連情報の取得

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

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

  5. Create Snippet をクリックします。Create a VCL スニペットページが表示されます。

  6. Name フィールドに適切な名前を入力します (例:Retrieve-Origin-Information)。

  7. Type のセクションで within subroutine を選択します。Select subroutine メニューが表示されます。

  8. Select subroutine メニューから、fetch (vcl_fetch) を選択します。

  9. VCL フィールドに以下の VCL ロジックを追加します。

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

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

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

  1. VCL Snippetsのリンクをクリックします。VCL スニペットのページが表示されます。

  2. Create Snippet をクリックします。Create a VCL スニペットページが表示されます。

  3. Name フィールドに適切な名前を入力します (例:Remove-Origin-Information)。

  4. Type のセクションで within subroutine を選択します。Select subroutine メニューが表示されます。

  5. Select subroutine メニューから、deliver (vcl_deliver) を選択します。

  6. VCL フィールドに以下の VCL ロジックを追加します。

    1if (fastly_info.state ~ "(MISS|PASS)") {
    2 # only on a miss or pass
    3 # save the responses back to req.request because
    4 # request headers are not sent back to the client
    5 set req.http.Your-Backend-Name = resp.http.Your-Backend-Name;
    6 set req.http.Your-Backend-IP-Port = resp.http.Your-Backend-IP-Port;
    7 }
    8
    9# remove the identifying information from the response
    10unset resp.http.Your-Backend-Name;
    11unset resp.http.Your-Backend-IP-Port;
  7. 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つ目のログにはオリジンシールドの情報が記録されることになります。


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

このフォームを使用して機密性の高い情報を送信しないでください。サポートが必要な場合はお問い合わせください : support@fastly.com