Configura hosts virtuales

Este tema trata sobre la configuración del host virtual. Los hosts virtuales permiten a Apigee Hybrid controlar solicitudes a la API a varios nombres de dominio y enrutar rutas de base del proxy a entornos específicos.

Para especificar a qué rutas base del proxy de API específicas del entorno se deben enrutar, usa la propiedad de configuración virtualhosts.routingRules[]. Para obtener detalles sobre las propiedades individuales, consulta virtualhosts en la referencia de la propiedad Configuration. 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 ingresa 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 ingresa una solicitud para https://api.example.com/customers, se enruta al entorno test2.

Agrega un entorno nuevo

Para agregar un entorno nuevo, agrega su configuración a la propiedad envs[] y agrega una entrada virtualhosts.routingRules.path nueva que especifique qué rutas base quieres asignar al entorno nuevo. En el siguiente ejemplo, se agrega un entorno nuevo llamado test3, y routingRules se actualizó para enrutar dos rutas al entorno nuevo:

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 debes aplicar el componente runtime, de la siguiente manera:

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

Agrega varios hosts virtuales

La propiedad virtualhosts[] es un arreglo y, por lo tanto, puedes crear más de una. Cada host virtual debe contener un conjunto único de alias de host: no hay dos hosts virtuales que puedan compartir el mismo alias de host. Por ejemplo, el nuevo host virtual dev controla 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 debes aplicar el componente runtime, de la siguiente manera:

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

Claves y certificados TLS

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

Tu decides la forma en la que generas pares de claves y certificados TLS adecuados para tu configuración híbrida. Los siguientes temas solo se proporcionan como muestras, destinadas principalmente a probar una instalación híbrida nueva si no es posible obtener credenciales TLS de otra manera: