Configura un host virtual

Edge para la nube privada v. 4.17.09

Un host virtual en Edge define los dominios y los puertos del router de Edge en los que se expone un proxy de API y, por extensión, la URL que usan las apps para acceder a un proxy de API. Un host virtual también define si se accede al proxy de API mediante el protocolo HTTP o el protocolo HTTPS encriptado.

Como parte del proceso de integración de Edge, debes crear una organización, un entorno y un host virtual. Edge proporciona el comando setup-org para facilitar este proceso a los usuarios nuevos.

Cuando crees el host virtual, debes especificar la siguiente información:

  • El nombre del host virtual que usas para hacer referencia a él en tus proxies de API.
  • El puerto del router para el host virtual. Por lo general, estos puertos comienzan en 9001 y aumentan de uno por cada host virtual nuevo.
  • El alias de host del host virtual. Por lo general, es el nombre de DNS del host virtual.

Por ejemplo, en un archivo de configuración que se pasa al comando setup-org, puedes especificar esta información de la siguiente manera:

# Specify virtual host information.
VHOST_PORT=9001
VHOST_NAME=default

# If you have a DNS entry for the virtual host.
VHOST_ALIAS=myapis.apigee.net

El router de borde compara el encabezado Host de la solicitud entrante con la lista de alias de host disponibles como parte de la determinación del proxy de API que controla la solicitud. Cuando realices una solicitud a través de un host virtual, especifica un nombre de dominio que coincida con el alias de host de un host virtual o especifica la dirección IP del router y el encabezado Host que contiene el alias de host.

Por ejemplo, si creaste un host virtual con un alias de host de myapis.apigee.net en el puerto 9001, una solicitud de cURL a una API a través de ese host virtual podría usar uno de los siguientes formatos:

  • Si tienes una entrada de DNS para myapis.apigee.net:

    curl http://myapis.apigee.net:9001/{proxy-base-path}/{resource-path}
  • Si no tienes una entrada de DNS para myapis.apigee.net, usa el siguiente comando:

    curl http://<routerIP>:9001/{proxy-base-path}/{resource-path} -H 'Host: myapis.apigee.net'

    En este formulario, especificas la dirección IP del router y pasas el alias de host en el encabezado Host.

    Nota: El comando cURL, la mayoría de los navegadores y muchas otras utilidades agregan de forma automática el encabezado Host con el dominio como parte de la solicitud, por lo que puedes usar un comando cURL con el siguiente formato:

    curl http://<routerIP>:9001/{proxy-base-path}/{resource-path}

Opciones cuando no tienes una entrada de DNS para el host virtual

Una opción cuando no tienes una entrada de DNS es establecer el alias de host en la dirección IP del router y el puerto del host virtual, como <routerIP>:puerto. Por ejemplo:

VHOST_ALIAS=192.168.1.31:9001

Luego, crea un comando curl en el siguiente formato:

curl http://<routerIP>:9001/{proxy-base-path}/{resource-path} 

Se prefiere esta opción porque funciona bien con la IU de Edge.

Si tienes varios routers, agrega un alias de host para cada uno y especifica la dirección IP de cada router y el puerto del host virtual:

# Specify the IP and port of each router as a space-separated list enclosed in quotes:
# VHOST_ALIAS="192.168.1.31:9001 192.168.1.32:9001"

De manera alternativa, puedes establecer el alias del host en un valor, como temp.hostalias.com. Luego, debes pasar el encabezado Host en cada solicitud:

curl -v http://<routerIP>:9001/{proxy-base-path}/{resource-path}  -H 'host: temp.hostalias.com'

También puedes agregar el alias de host a tu archivo /etc/hosts. Por ejemplo, agrega esta línea a /etc/hosts:

192.168.1.31   temp.hostalias.com

Luego, puedes realizar una solicitud como si tuvieras una entrada DNS:

curl -v http://myapis.apigee.net:9001/{proxy-base-path}/{resource-path}