Configurar hosts virtuales

En este tema se explica cómo configurar hosts virtuales. Los hosts virtuales permiten que Apigee hybrid gestione solicitudes de API a varios nombres de dominio y que enrute las rutas base de los proxies a entornos específicos.

Para especificar a qué rutas base de proxy de API específicas del entorno se deben dirigir las solicitudes, usa la propiedad de configuración virtualhosts.routingRules[]. Para obtener información sobre las propiedades individuales, consulta virtualhosts en la referencia de la propiedad de configuración. Por ejemplo:

...

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

Cuando se recibe una llamada a la API, como https://api.example.com/orders, la solicitud se envía al procesador de mensajes del entorno test1. Del mismo modo, si llega una solicitud a https://api.example.com/customers, se enruta al entorno test2.

Añadir un nuevo entorno

Para añadir un nuevo entorno, añade su configuración a la propiedad envs[] y añade una nueva entrada virtualhosts.routingRules.path que especifique las rutas base que quieras asignar al nuevo entorno. En el ejemplo siguiente, se añade un nuevo entorno llamado test3 y se actualizan los routingRules para enrutar dos rutas al nuevo entorno:

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

Para aplicar la actualización, solo tienes que aplicar el componente runtime, como se indica a continuación:

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

Añadir varios hosts virtuales

La propiedad virtualhosts[] es una matriz, por lo que puedes crear más de una. Cada host virtual debe contener un conjunto único de alias de host. No puede haber dos hosts virtuales que compartan el mismo alias de host. Por ejemplo, el nuevo host virtual dev gestiona el tráfico enviado al dominio api.internal.com.

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

Para aplicar la actualización, solo tienes que aplicar el componente runtime, como se indica a continuación:

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

Claves y certificados TLS

Cuando crees un host virtual, debes proporcionar una clave y un certificado TLS. La clave o el certificado se usan para proporcionar una comunicación segura con la pasarela de entrada.

Tú decides cómo generar los pares de certificado y clave TLS adecuados para tu configuración híbrida. Los temas siguientes se proporcionan solo como ejemplos, principalmente para probar una nueva instalación híbrida si no es posible obtener credenciales TLS de otra forma: