仮想ホストの設定

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 ヘッダーでホスト エイリアスを渡します。

仮想ホストの DNS エントリがない場合のオプション

DNS エントリがない場合のオプションの 1 つとして、ホスト エイリアスを routerIP:port の形式で Router の IP アドレスと仮想ホストのポートの組み合わせに設定する方法があります。次に例を示します。

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