このトピックでは、仮想ホストの構成について説明します。仮想ホストを使用すると、Apigee Hybrid で複数のドメイン名への API リクエストを処理し、プロキシのベースパスを特定の環境にルーティングすることができます。
ルーティングする環境固有の API プロキシのベースパスを指定するには、virtualhosts.routingRules[] 構成プロパティを使用します。個々のプロパティの詳細については、構成プロパティ リファレンスの virtualhosts をご覧ください。例:
...
virtualhosts:
- name: vhost1
hostAliases: ["api.example.com"]
sslCertPath: ./certs/fullchain.pem
sslKeyPath: ./certs/privkey.pem
routingRules:
- paths:
- /orders
- /items
env: test1
- paths:
- /customers
env: test2
envs:
- name: test1
serviceAccountPaths:
synchronizer: ./sa/synchronizer.json
udca: ./sa/udca.json
- name: test2
serviceAccountPaths:
synchronizer: ./sa/synchronizer.json
udca: ./sa/udca.json
https://api.example.com/orders などの API 呼び出しが到着すると、リクエストは test1 環境の Message Processor に送信されます。同様に、https://api.example.com/customers へのリクエストが到達すると、test2 環境にルーティングされます。
新しい環境の追加
新しい環境を追加するには、その構成を envs[] プロパティに追加します。次に、新しい virtualhosts.routingRules.path エントリを追加して、新しい環境にマッピングするベースパスを指定します。次の例では、test3 という名前の新しい環境が追加され、2 つのパスを新しい環境にルーティングするように routingRules が更新されています。
virtualhosts:
- name: vhost1
hostAliases: ["api.example.com"]
sslCertPath: ./certs/fullchain.pem
sslKeyPath: ./certs/privkey.pem
routingRules:
- paths:
- /orders
- /items
env: test1
- paths:
- /v0/hello
- /httpbin
env: test2
- paths:
- /v0/inventory
- /v0/customers
env: test3
envs:
- name: test1
serviceAccountPaths:
synchronizer: ./sa/synchronizer.json
udca: ./sa/udca.json
- name: test2
serviceAccountPaths:
synchronizer: ./sa/synchronizer.json
udca: ./sa/udca.json
- name: test3
serviceAccountPaths:
synchronizer: ./sa/synchronizer.json
udca: ./sa/udca.json
更新を適用するには、次のように runtime コンポーネントを適用するだけです。
apigeectl apply -f overrides-file.yaml -c runtime
複数の仮想ホストの追加
virtualhosts[] プロパティは配列なので、複数作成できます。各仮想ホストには一意のホスト エイリアスのセットが必要です。2 つの仮想ホストが同じホスト エイリアスを共有することはできません。たとえば、次の例では、新しい仮想ホスト dev が api.internal.com ドメインに送信されたトラフィックを処理します。
virtualhosts:
- name: vhost1
hostAliases: ["api.example.com"]
sslCertPath: ./certs/fullchain.pem
sslKeyPath: ./certs/privkey.pem
routingRules:
- paths:
- /orders
- /items
env: test1
- paths:
- /v0/hello
- /httpbin
env: test2
- paths:
- /v0/inventory
- /v0/customers
env: test3
- name: vhost2
hostAliases: ["api.internal.com"]
sslCertPath: ./certs/fullchain.pem
sslKeyPath: ./certs/privkey.pem
routingRules:
- paths:
- /orders
- /items
env: test1
- paths:
- /v0/hello
- /httpbin
env: test2
- paths:
- /v0/inventory
- /v0/customers
env: test3
envs:
- name: test1
serviceAccountPaths:
synchronizer: ./sa/synchronizer.json
udca: ./sa/udca.json
- name: test2
serviceAccountPaths:
synchronizer: ./sa/synchronizer.json
udca: ./sa/udca.json
- name: test3
serviceAccountPaths:
synchronizer: ./sa/synchronizer.json
udca: ./sa/udca.json
更新を適用するには、次のように runtime コンポーネントを適用するだけです。
apigeectl apply -f overrides-file.yaml -c runtime
TLS 鍵と証明書
新しい仮想ホストを作成するとき、TLS 鍵と証明書を提供する必要があります。この鍵 / 証明書は、Ingress ゲートウェイとの安全な通信を確立するために使用されます。
Hybrid 構成に適切な TLS 証明書と鍵のペアを生成する方法はユーザーが選択します。以下のトピックは、主に、TLS 認証情報を他の方法では取得できない場合に、新しい Hybrid インストールを試用またはテストするためのサンプルとして提供されています。
- 承認された TLS 証明書と鍵のペアを作成するための一連のサンプル ステップについては、TLS 認証情報を取得するをご覧ください。
- 自己署名証明書と鍵のペアは、テスト目的でのみ使用できます。自己署名 TLS 認証情報を生成するをご覧ください。