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:
- Consulta Obtener credenciales TLS para ver una serie de pasos de ejemplo para crear un par de claves y certificados TLS autorizados.
- Solo puedes usar un par de certificados y claves autofirmados para hacer pruebas. Consulta Generar credenciales TLS con firma automática.