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.