Edge の仮想ホストは、API プロキシが公開されるドメインと Edge Router ポートを定義します。さらに、拡張機能により、アプリが API プロキシへのアクセスに使用する URL も定義します。また、API プロキシへのアクセスに HTTP プロトコルと暗号化 HTTPS プロトコルのどちらを使用するかも定義されます。
Edge オンボーディング プロセスの一環として、組織、環境、仮想ホストを作成する必要があります。Edge には、新規ユーザーがこのプロセスを簡単に行えるように setup-org
コマンドが用意されています。
仮想ホストを作成するときは、次の情報を指定する必要があります。
- API プロキシでの参照に使用する仮想ホストの名前。
- 仮想ホストの Router のポート。通常、これらのポートは 9,001 から開始され、新しい仮想ホストごとに 1 ずつ増加します。
- 仮想ホストのホスト エイリアス。通常は、仮想ホストの DNS 名です。
たとえば、setup-org
コマンドに渡される構成ファイルでは、次のように情報を指定できます。
# Specify virtual host information VHOST_PORT=9001 VHOST_NAME=default # If you have a DNS entry for the virtual host VHOST_ALIAS=myapis.apigee.net
Edge Router は、リクエストを処理する API プロキシを決定する際に、受信リクエストの Host
ヘッダーと使用可能なホスト エイリアスのリストを比較します。仮想ホストを使用してリクエストを行う場合は、仮想ホストのホスト エイリアスと一致するドメイン名を指定するか、Router の IP アドレスとホスト エイリアスを含む Host
ヘッダーを指定します。
たとえば、ポート 9001 に myapis.apigee.net のホスト エイリアスを持つ仮想ホストを作成した場合、その仮想ホストを介した API への cURL リクエストには、次のいずれかの形式を使用します。
- myapis.apigee.net の DNS エントリがある場合:
curl http://myapis.apigee.net:9001/proxy-base-path/resource-path
- myapis.apigee.net の DNS エントリがない場合:
curl http://routerIP:9001/proxy-base-path/resource-path -H 'Host: myapis.apigee.net'
このフォームでは、Router の IP アドレスを指定し、
Host
ヘッダーにホスト エイリアスを渡します。
仮想ホストの DNS エントリがない場合のオプション
DNS エントリがない場合の 1 つの方法は、ホスト エイリアスを、Router の IP アドレスと仮想ホストのポートを組み合わせた routerIP:port の形式で設定することです。
VHOST_ALIAS=192.168.1.31:9001
次に、以下の形式で curl コマンドを作成します。
curl http://routerIP:9001/proxy-base-path/resource-path
このオプションは、Edge UI と適切に連携するため、こちらをおすすめします。
複数の Router がある場合は、各 Router の IP アドレスと仮想ホストのポートを指定して、Router ごとにホスト エイリアスを追加します。
# Specify the IP and port of each router as a space-separated list enclosed in quotes: # VHOST_ALIAS="192.168.1.31:9001 192.168.1.32:9001"
あるいは、ホスト エイリアスを temp.hostalias.com
などの値に設定することもできます。次に、すべてのリクエストで Host
ヘッダーを渡す必要があります。
curl -v http://routerIP:9001/proxy-base-path/resource-path -H 'host: temp.hostalias.com'
または、/etc/hosts
ファイルにホスト エイリアスを追加します。たとえば、/etc/hosts
に次の行を追加します。
192.168.1.31 temp.hostalias.com
次に、DNS エントリがある場合と同様にリクエストを実行できます。
curl -v http://myapis.apigee.net:9001/proxy-base-path/resource-path