ユーザーの位置に基づいてオリジンを変更する
最終更新日 2018-08-01
Fastly ではユーザーの地理的位置に基づいてオリジンサーバー変更することができます。この機能は、ユーザーの場所に応じて異なるコンテンツを提供する必要がある場合に便利です。例えば、オリジンサーバーを変更することで、異なる国のユーザーに制限されたバージョンのウェブサイトを提供することができます。
コントロールパネルを使用する
コントロールパネルを使用してヘッダーと条件を作成することができます。
デフォルトのオリジンサーバーのヘッダーを作成する
まず、大多数のユーザー向けにコンテンツを提供するための、デフォルトのオリジンサーバーのヘッダーを作成します。以下の手順に従ってヘッダーを作成します。
- Fastly コントロールパネルにログインします。
- Home ページから、適切なサービスを選択します。検索ボックスを使用すると、ID、名称、ドメインでの検索が行えます。
- Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。ドメインページが表示されます。
- Content をクリックします。Content ページが表示されます。
-
Create header ボタンをクリックします。Create a header 設定画面が開きます。
- 以下の要領で Create a header ページの各フィールドに入力します。
- Name フィールドには、ヘッダールール名を入力します (例:
Set default origin
)。 - Type メニューから Request を選択し、Action メニューから Set を選択します。
- Destination フィールドに
backend
と入力します。 - Source フィールドに、大多数のユーザー向けにコンテンツを提供させるオリジンサーバーの名前を入力します (ここでは
F_global
)。VCL をプレビューし、オリジンサーバー名を確認します。 - Ignore if set メニューから No を選択します。
- Priority フィールドに
10
と入力します。
- Name フィールドには、ヘッダールール名を入力します (例:
- Create ボタンをクリックします。
制限付きオリジンサーバーのヘッダーを作成する
次に、条件で指定した国のユーザー向けにコンテンツを配信するための、制限付きオリジンサーバーのヘッダーを作成します。以下の手順に従ってヘッダーを作成します。
- Content をクリックします。Content ページが表示されます。
-
Create header ボタンをクリックします。Create a header 設定画面が開きます。
- 以下の要領で Create a header ページの各フィールドに入力します。
- Name フィールドには、ヘッダールール名を入力します (例:
Set restricted origin
)。 - Type メニューから Request を選択し、Action メニューから Set を選択します。
- Destination フィールドに
backend
と入力します。 - Source フィールドには、条件で指定した国のユーザー向けにコンテンツを提供するための、制限付きオリジンサーバーの名前を入力します (ここでは
F_restricted_content
)。VCL をプレビューし、オリジンサーバー名を確認します。 - Ignore if set メニューから No を選択します。
- Priority フィールドに
11
と入力します。
- Name フィールドには、ヘッダールール名を入力します (例:
- Create ボタンをクリックします。
制限付きオリジンヘッダーの条件を作成する
最後に、制限付きオリジンヘッダーの条件を作成します。この条件は、ジオロケーションヘッダーを確認します。ユーザーの位置情報が条件で指定された場所と一致した場合、Fastly は制限付きオリジンサーバーを使用します。次の手順に従って条件を作成します。
- Content をクリックします。Content ページが表示されます。
-
Headers セクションで、Set restricted origin ヘッダーの横にある Attach a condition リンクをクリックします。Create a new request condition ウィンドウが表示されます。
- 以下の要領で Create a new request condition 設定画面の各フィールドに入力します。
- Name フィールドに、新しい条件の内容が分かるような名前を入力します (例:
From Restricted Location
)。 - Apply if フィールドにリクエスト条件を入力します。例えば、アジアとヨーロッパの全ユーザーを制限付きオリジンサーバーに送るには、
client.geo.continent_code == "AS" || client.geo.continent_code == "EU"
と入力します。詳細は、ジオロケーション関連の VCL 機能を参照してください。
- Name フィールドに、新しい条件の内容が分かるような名前を入力します (例:
- Save and apply to ボタンをクリックします。
- Activate ボタンをクリックして設定変更をデプロイします。
カスタム VCL を使用する
コントロールパネルを使いたくない場合は、カスタム VCL を使用し、ユーザーの地理的な位置に基づいてオリジンサーバーを変更するようにサービスを設定することができます。以下の VCL を見本としてご利用ください。
1
2
3
4
5
6
7
# default conditions
set req.backend = F_global;
# Use restricted content if the user is in Asia, France or Germany
if (client.geo.continent_code == "AS" || client.geo.country_code == "FR" || client.geo.country_code == "DE") {
set req.backend = F_restricted_content;
}