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:
- Consulta Obtén credenciales de TLS a fin de obtener un conjunto de pasos de muestra para crear un par de claves o un certificado TLS autorizado.
- Puedes usar pares de claves o certificados autofirmados solo con fines de prueba. Consulta Genera credenciales TLS autofirmados.