Edge for Private Cloud v. 4.17.01
Un host virtual en Edge define los dominios y puertos del router perimetral en los que se encuentra un proxy de API. expuesta 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 a través del protocolo HTTP o mediante el protocolo protocolo.
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 este proceso sea más fácil para los nuevos usuarios.
Cuando creas el host virtual, debes especificar la siguiente información:
- El nombre del host virtual que usas para hacer referencia a él en tu API proxies.
- El puerto del router para el host virtual. Por lo general, estos puertos comienzan en 9,001 y se incrementan de a uno por cada host virtual nuevo.
- El alias del host del host virtual. Por lo general, es el nombre de DNS del un host virtual.
El router perimetral compara el encabezado del host del solicitud entrante a la lista de alias de host disponibles como parte de la determinación del proxy de API que se encarga de 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 especificar la dirección IP del router y el encabezado Host, que contiene el alias del host.
Por ejemplo, si creó un host virtual con un alias de host de myapis.apigee.net en el puerto 9001, una solicitud cURL a una API a través de ese host virtual podría usar uno de los siguientes Formularios:
- Si tienes una entrada de DNS para myapis.apigee.net, ejecuta lo siguiente:
curl http://myapis.apigee.net:9001/{proxy-base-path}/{resource-path} - Si no tienes una entrada de DNS para myapis.apigee.net, ejecuta lo siguiente:
curl http://<routerIP>:9001/{proxy-base-path}/{resource-path} -H “Host: myapis.apigee.net”
En este formulario, especifica la dirección IP del router y pasa el alias del host en el encabezado del host.
Nota: El comando curl, la mayoría de los navegadores y muchas otras utilidades automáticamente adjuntar el encabezado del host con el dominio como parte de la solicitud, de modo que pueda usar en el formato:
curl http://<routerIP>:9001/{proxy-base-path}/{resource-path}
Opciones cuando no tienes un DNS entrada para el host virtual
Una opción cuando no tienes una entrada de DNS es establecer el alias del host en la dirección IP de la Router y puerto del host virtual, como <routerIP>:port. Por ejemplo:
192.168.1.31:9001
Luego, crea un comando curl en el formulario a continuación:
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 router y especifica la dirección IP de cada router y puerto del host virtual.
Como alternativa, puedes establecer el alias del host en un valor, como 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 del host a tu archivo /etc/hosts. Por ejemplo, agrega esta línea para /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}
Usa un puerto protegido en un host virtual
Si quieres crear un host virtual que vincule el router a un puerto protegido, como inferior a 1,024, debes configurar el router para que se ejecute como un usuario con acceso a esos puertos. De forma predeterminada, el router se ejecuta como el usuario “apigee” que no tiene acceso a puertos con privilegios.
Para ejecutar el router como un usuario diferente, haz lo siguiente:
- Como raíz, crea el archivo /opt/apigee/etc/edge-router.d/RUN_USER.sh.
- Agrega la siguiente entrada al archivo:
RUN_USER=root
Si no quieres ejecutar el router como raíz, especifica un usuario con acceso al puerto. - Guarda el archivo.
- Si especificaste un usuario que no sea raíz, cambia el propietario del archivo por ese usuario:
> chown USUARIO:USUARIO /opt/apigee/etc/edge-router.d/RUN_USER.sh - Reiniciar el router:
> /opt/apigee/apigee-service/bin/apigee-service Edge-router restart