Virtuelle Hosts konfigurieren

In diesem Thema wird die Konfiguration des virtuellen Hosts erläutert. Mit virtuellen Hosts kann Apigee Hybrid API-Anfragen an mehrere Domainnamen verarbeiten und Proxy-Basispfade an bestimmte Umgebungen weiterleiten.

Mit dem Konfigurationsattribut virtualhosts.routingRules[] können Sie festlegen, an welche umgebungsspezifischen API-Proxys Basispfade weitergeleitet werden soll. Weitere Informationen zu den einzelnen Attributen finden Sie in der Referenz zu Konfigurationsattributen unter virtualhosts. Beispiele:

...

virtualhosts:
  - name: vhost-one
    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

Wenn ein API-Aufruf wie https://api.example.com/orders eingeht, wird die Anfrage an den Nachrichtenprozessor der test1-Umgebung gesendet. Analog dazu wird eine Anfrage an https://api.example.com/customers an die Umgebung test2 weitergeleitet.

Neue Umgebung hinzufügen

Wenn Sie eine neue Umgebung hinzufügen möchten, fügen Sie deren Konfiguration zum Attribut envs[] hinzu und fügen Sie dann einen neuen virtualhosts.routingRules.path-Eintrag hinzu, der angibt, welche Basispfade der neuen Umgebung zugeordnet werden sollen. Im folgenden Beispiel wird eine neue Umgebung mit dem Namen test3 hinzugefügt. routingRules wurde aktualisiert, um zwei Pfade zur neuen Umgebung zu weiterzuleiten:

virtualhosts:
  - name: vhost-one
    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

Um das Update anzuwenden, müssen Sie nur die runtime-Komponente anwenden:

apigeectl apply -f overrides-file.yaml -c runtime

Mehrere virtuelle Hosts hinzufügen

Das Attribut virtualhosts[] ist ein Array, das Sie erstellen können. Jeder virtuelle Host muss einen eindeutigen Satz von Hostaliassen enthalten: Zwei virtuelle Hosts können nicht denselben Hostalias teilen. Zum Beispiel verarbeitet der neue virtuelle Host dev den an die Domain api.internal.com gesendeten Traffic.

virtualhosts:
  - name: vhost-one
    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: vhost-two
    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

Um das Update anzuwenden, müssen Sie nur die runtime-Komponente anwenden:

apigeectl apply -f overrides-file.yaml -c runtime

TLS-Schlüssel und -Zertifikate

Wenn Sie einen neuen virtuellen Host erstellen, müssen Sie auch einen TLS-Schlüssel und ein Zertifikat bereitstellen. Schlüssel und Zertifikat werden zur sicheren Kommunikation mit dem Ingress-Gateway verwendet.

Sie entscheiden selbst, wie Sie geeignete TLS-Zertifikat-/Schlüsselpaare für Ihre Hybridkonfiguration generieren. Die folgenden Themen werden nur als Beispiele bereitgestellt. Sie dienen hauptsächlich zum Ausprobieren oder Testen einer neuen Hybridinstallation, wenn es nicht möglich ist, TLS-Anmeldedaten abzurufen.