Edge for Private Cloud v. 4.17.09
Edge 上の仮想ホストでは、API プロキシを公開するためのドメインと Edge Router のポートが定義されます。さらに、拡張機能により、アプリから API プロキシへのアクセスに使用される URL も定義されます。また、仮想ホストでは、API プロキシへのアクセスに HTTP プロトコルと暗号化された HTTPS プロトコルのどちらを使用するかを定義します。
Edge のオンボーディング プロセスの一環として、組織、環境、仮想ホストを作成する必要があります。新規ユーザー向けに、このプロセスを簡単にする setup-org コマンドが用意されています。
仮想ホストを作成するときは、以下の情報を指定する必要があります。
- API プロキシで仮想ホストを参照するときに使用する仮想ホスト名。
- 仮想ホストの Router のポート。通常、これらのポートは 9001 から始まり、新しい仮想ホストごとに 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 ヘッダーを指定します。
たとえば、ホスト エイリアスが myapis.apigee.net の仮想ホストをポート 9001 に作成した場合、その仮想ホストを介した 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 ヘッダーでホスト エイリアスを渡します。
注: cURL コマンド、大部分のブラウザ、その他多くのユーティリティでは、ドメインを含む Host ヘッダーがリクエストの一部として自動的に追加されるため、実際には次の形式の cURL コマンドを使用できます。
curl http://<routerIP>:9001/{proxy-base-path}/{resource-path}
仮想ホストの 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}