Estás viendo la documentación de Apigee Edge.
Ve a la
documentación de Apigee X. info
En una instalación local, tienes el control total sobre los hosts virtuales. Puedes crear hosts virtuales para cualquier organización, en cualquier entorno, con o sin TLS.
En este documento, se describe cómo crear un host virtual simple. Es decir, una que no sea compatible con TLS. Para obtener más ejemplos, incluidos ejemplos sobre la creación de hosts virtuales compatibles con TLS, consulta Cómo configurar el acceso a TLS a una API para la nube privada.
Más información:
- Acerca de los hosts virtuales
- Cómo configurar hosts virtuales
- Configura TLS
- Almacenes de claves y almacenes de confianza
- Configura el acceso a TLS a una API para la nube privada
Información acerca de los alias de host
Cuando crees el host virtual, debes especificar el alias de host del host virtual. Por lo general, este es el nombre de DNS del host virtual.
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, sigue estos pasos:
curl http://myapis.apigee.net:9001/proxy-base-path/resource-path
Si no tienes una entrada de DNS para myapis.apigee.net, sigue estos pasos:
curl http://routerIP:9001/proxy-base-path/resource-path -H 'host:myapis.apigee.net'
En este formulario, debes especificar la dirección IP del router y pasar el alias del host en el encabezado
Host
.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:port. Por ejemplo:
192.168.1.31:9001
Cuando creas un comando curl
en el siguiente formulario:
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.
Como alternativa, puedes establecer el alias de 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
Acerca de los puertos de host virtual en Edge para la nube privada 4.16.01 y versiones posteriores
Cuando creas un host virtual, especificas el puerto del router que usa el host virtual. Por ejemplo, el puerto 9001.
En el caso de las versiones 4.16.01 y posteriores de Apigee for Private Cloud, de forma predeterminada, el router se ejecuta como el usuario "apigee", que no tiene acceso a puertos con privilegios, por lo general, los puertos 1024 y anteriores. Si deseas crear un host virtual que vincule el router a un puerto protegido, debes configurar el router para que se ejecute como un usuario con acceso a esos puertos. Consulta Configura un host virtual para obtener más información.
Crea hosts virtuales
En esta sección, se describe cómo crear hosts virtuales para Apigee Edge para una nube privada. Ten en cuenta que, para crear un host virtual nuevo, debes ser administrador de la organización.
Puedes crear hosts virtuales para Apigee Edge para la nube privada con la API o la IU de Edge. Estos se describen en las siguientes secciones.
Crea un host virtual con un navegador
En esta sección, se describe cómo crear un host virtual con un navegador (solo la IU de Edge).
Para crear un host virtual nuevo en la IU de Edge, haz lo siguiente:
- Accede a la IU de administración de Edge.
- Selecciona Administrador > Virtual Hosts.
Selecciona el entorno en la lista desplegable.
Edge muestra una lista de hosts virtuales para ese entorno.
- Para crear un host virtual nuevo, selecciona + Host virtual.
Edge muestra el formulario Crear host virtual.
También puedes hacer clic en el nombre de un host virtual existente para editarlo.
- Define tu nuevo host virtual. Ten en cuenta que el campo Base URL debe incluir el protocolo (es decir, anteponer el valor del campo con “http://” o “https://”).
Además, ten en cuenta lo siguiente:
- No hay límite para la cantidad de hosts virtuales que puedes crear.
- TLS es opcional y puede ser la versión 1.0, 1.1 o 1.2.
- El puerto del host virtual se puede configurar
- Haz clic en el botón Create para guardar tu nuevo host virtual.
Crea un host virtual con la API
Para crear un host virtual con la API, crea un objeto XML que defina el host virtual. Por ejemplo, el siguiente objeto XML define un host virtual que usa el protocolo HTTP:
<VirtualHost name="myVHost"> <HostAliases> <HostAlias>DNS_name_or_IP:port</HostAlias> </HostAliases> <Interfaces/> <Port>9005</Port> </VirtualHost>
Observa que el host virtual contiene una propiedad name
. Usas el valor de la
propiedad name
para configurar un proxy de API que use el host virtual.
Luego, puedes acceder a un proxy de API a través de este host virtual mediante una solicitud a:
http://routerIP:port/proxy-base-path/resource-path
https://routerIP:port/proxy-base-path/resource-path
Aquí:
http
ohttps
: Si el host virtual está configurado para admitir TLS, usa HTTPS. Si el host virtual no admite TLS, usa HTTP.- routerIP:port es la dirección IP y el número de puerto del host virtual.
- proxy-base-path y resource-path se definen cuando creas el proxy de API.
Por lo general, no publicas tus APIs para los clientes con una dirección IP y un número de puerto. En su lugar, debes definir una entrada de DNS para el router y el puerto. Por ejemplo:
http://api.myCompany.com/proxy-base-path/resource-path https://api.myCompany.com/proxy-base-path/resource-path
Si defines la entrada de DNS, debes crear un alias de host para el host virtual que coincida con el nombre de dominio de la entrada de DNS. El alias del host debe coincidir con la string que el cliente pasa en el encabezado Host
.
En el ejemplo anterior, especificarías un alias de host de api.myCompany.com
.
<VirtualHost name="myVHost"> <HostAliases> <HostAlias>api.myCompany.com</HostAlias> </HostAliases> <Interfaces/> <Port>9005</Port> </VirtualHost>
Para crear un host virtual que use el protocolo HTTP, realiza lo siguiente:
- Crea el host virtual con la API de Create a Virtual Host, donde ms-IP es la dirección IP o el nombre de dominio del nodo del servidor de administración:
$ curl -X POST -H "Content-Type:application/xml" \ http://ms-IP:8080/v1/o/org_name/environments/env_name/virtualhosts \ -d '<VirtualHost name="newVHost"> <HostAliases> <HostAlias>api.myCompany.com</HostAlias> </HostAliases> <Interfaces/> <Port>9005</Port> </VirtualHost>' \ -u sysAdminEmail:password
- Crea el registro DNS para el host virtual que coincida con el alias del host.
- Si tienes proxies de API existentes, agrega el host virtual al elemento
<HTTPConnection>
en el extremo del proxy. El host virtual se agrega automáticamente a todos los proxies de API nuevos. Consulta Cómo configurar un proxy de API para usar un host virtual.
Cómo modificar un host virtual
Para modificar un host virtual, sigue estos pasos:
-
Actualiza el host virtual con la API de Update a Virtual Host, en la que
<ms-IP>
es la dirección IP o el nombre de dominio del nodo del servidor de administración. Debes especificar la definición completa del host virtual en el cuerpo de la solicitud, no solo los elementos que quieras cambiar. En este ejemplo, cambias el número de puerto del host virtual de 9008 a 9009:curl -X PUT -H "Content-Type:application/xml" \ http://ms-IP:8080/v1/o/org_name/environments/env_name/virtualhosts/vhost_name \ -d '<VirtualHost name="newVHost"> <HostAliases> <HostAlias>api.myCompany.com</HostAlias> </HostAliases> <Interfaces/> <Port>9009</Port> </VirtualHost>' \ -u email:password
-
Solo para las versiones 4.16.01 y 4.16.05 de Edge for Private Cloud, si modificas un host virtual existente y habilitas o inhabilitas TLS sin cambiar el número de puerto, haz lo siguiente:
Detén el router:
/opt/apigee/apigee-service/bin/apigee-service edge-router stop
Borra todos los archivos de
/opt/nginx/conf.d
:rm -f /opt/nginx/conf.d/*
Inicia el router:
/opt/apigee/apigee-service/bin/apigee-service edge-router start
- Repite el proceso para todos los routers.