コンテンツにスキップ

複数のWebサイトを1つのドメインにまとめる(サイトの集約)

サイトの集約(Sites Aggregation) は、サイトとは異なるドメインを持つWebページを、サイトのドメインでホストする機能です。

代表的なユースケースは「KARTEで複数ドメインをまたぐWebサービスのユーザー行動を計測する」場合です。

例えば、あるWebサービスでKARTEの計測機能を利用する場合を考えます。このWebサービスは、別ドメインを持つ外部の予約サービスを使って予約機能を実装しています。このとき、「KARTEで計測できるのは同一ドメインおよびサブドメイン上のユーザー行動のみ」という仕様により、予約機能上のユーザー行動は計測できません。

この課題を解決するため、サイトの集約が利用できます。次の図はサイトの集約を利用する場合の構成図です。

sites-aggregation-overview

WebサービスのサブドメインでCraft Sitesのサイトをホストし、サイトの集約で予約機能をホストします。こうすることで、Webサービスと予約機能は同一ドメイン配下となり、一貫したユーザー行動が計測できるようになります。

サイトの集約の仕組み

サイトの集約を構成する要素は次のとおりです。

  • プロキシ: サイトの集約の構成単位。中継対象のルール(パス)とドメイン名(転送先ドメイン名)から成り立ちます。
  • パス: リクエストを中継する際のルール。
    • 1つのプロキシについて、複数のルールが指定できます。
    • URLパスおよびワイルドカード * を使ったパスパターンが指定できます。
    • また、パス(パスパターン)ごとにパスの書き換えも設定できます。
  • 転送先ドメイン名: リクエストを中継する先のドメイン名。
    • 1つのプロキシについて1つまで指定できます。
    • ドメイン名に指定できるのは、公開されているWebページのみです。

サイトの集約は、次のような仕組みで機能を実現しています。

  1. サイトにリクエストが到達します。
  2. リクエストのパスがプロキシのパス(パスパターン)に当てはまった場合、次の処理を行います。
    • ドメインを転送先ドメイン名に書き換えます。
    • パスを転送先のパスに書き換えます。
  3. 書き換え済みのURLを使って公開Webサイトにリクエストを中継します。
  4. 中継先からのレスポンスを、サイトのレスポンスとして返却します。

サイトの集約を設定する

サイトの集約を設定するための手順は次のとおりです。

  1. プロキシを作成し、プロキシ先ドメイン名を設定する。
  2. プロキシによる中継対象のパスを設定する。

プロキシを作成する

管理画面でプロキシを作成する手順は次のとおりです。

  1. KARTE管理画面で「Craft」>「サイト」を選択し、サイト一覧画面を表示します。
  2. 対象のサイト名を選択して、エディター画面を表示します。
  3. 画面右上の三点リーダー(…)から「プロキシ一覧」を選択し、プロキシ一覧画面を表示します。
  4. 「新規作成」を選択し、プロキシ作成ダイアログを表示します。
    1. 「名前」にプロキシの名前を指定します。
    2. 「転送先ドメイン」に中継先のドメイン名を指定します。
  5. プロキシ作成ダイアログで「保存」を選択します。

パスを設定する

パスの設定はエディター画面のファイル操作パネルで行います。

  1. ファイル操作パネルで、中継対象のフォルダ階層を選択します。
    1. フォルダが存在しない場合はファイル操作パネル上部の「追加」からフォルダを作成してください(フォルダの作成 参照)。
  2. ファイル操作パネル上部の「追加」から「プロキシパスを追加」を選択し、プロキシパス追加ダイアログを開きます。
    1. 「プロキシ先」で対象のプロキシ名を選択します。
    2. 「書き換え先のパス」でパスの書き換え設定を行います。
  3. 「追加」を選択し、通常のファイル、フォルダと同じように入力欄にパスの末尾を入力します。

次にパスの設定例を示します。

  • /path/to/proxy/index.html をプロキシ対象にする場合
    • ファイル操作パネルで /path/to/proxy フォルダを選択します。
    • 「プロキシパスを追加」でプロキシ先を選択し、index.html と入力します。
  • /path/to/proxy/ 配下の全てのパスをプロキシ対象にする場合
    • ファイル操作パネルで /path/to/proxy フォルダを選択します。
    • 「プロキシパスを追加」でプロキシ先を選択し、* と入力します。
  • /path/to/proxy/ をプロキシ対象にする場合
    • ファイル操作パネルで /path/to/proxy フォルダを選択します。
    • 「プロキシパスを追加」でプロキシ先を選択し、空文字 “ を入力します。

パスを削除する

ファイル操作パネルでパスを削除できます。

  1. ファイル操作パネルで対象のファイル・フォルダ名の三点リーダー(…)メニューから「削除」を選択します。
  2. ダイアログに対象のパスが表示されるので内容を確認し、削除してよければ「削除」を選択します。

プロキシを削除する

プロキシの削除は「プロキシ一覧」画面から行えます。

  1. プロキシに紐づくパスを全て削除します。
    1. 未削除の場合は削除できません。
  2. 「プロキシ一覧」画面を開きます。
  3. 対象のプロキシがある行の三点リーダー(…)から「削除」を選択します。
  4. ダイアログが開くので内容を確認し、「削除」を選択します。

サイトの集約の性質

サイトの集約を設定するにあたって、考慮すべき性質を説明します。

プロキシのパスはサイトのコンテンツより優先度が高い

サイトの集約では、サイトに実在するコンテンツと同一のパスや、ワイルドカードによる包含関係を持つパスが指定できます。このようなパスをプロキシに設定した場合、当該パスへのリクエストは実在のコンテンツに到達せず、プロキシ先に中継されます。

例えば、サイト内に /path/to/content/index.html というファイルがあったとします。サイトの集約機能でプロキシを作成し、パスに /path/to/content/index.html を指定した場合、/path/to/content/index.html へのリクエストはサイト内のファイルではなく、プロキシ先に中継されます。また、パスに /path/to/content/* を指定した場合、/path/to/content 配下にどんなファイルが置かれていても、プロキシの方が優先になります。

制限

サイトに紐づけられるプロキシ数および、プロキシで設定できるパス数には上限があります。