Configura hosts virtuales para la nube privada

Estás viendo la documentación de Apigee Edge.
Ve a la Documentación de Apigee X.
información

En una instalación local, tienes el control total sobre los hosts virtuales. Puedes crear hosts virtuales para cualquier organización, en cualquier entorno, que usen TLS o no.

En este documento, se describe cómo crear un host virtual simple. Es decir, uno que no admiten TLS. Para ver más ejemplos, incluidos ejemplos sobre la creación de hosts virtuales que admiten TLS, consulta Configura TLS acceso a una API para la nube privada.

Más información:

Información acerca de los alias de host

Cuando creas el host virtual, debes especificar el alias del host virtual. Por lo general, este es el nombre de DNS del host virtual.

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

Por ejemplo, si creaste un host virtual con un alias de host de myapis.apigee.net en el puerto 9001 y, luego, una solicitud cURL a una API mediante ese host virtual podría usar una de las siguientes formas:

  • 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, especifica la dirección IP del router y pasa el alias del host en la Encabezado Host.

    curl http://routerIP:9001/proxy-base-path/resource-path

Opciones cuando haces no tienen una entrada DNS 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

Cuando creas un comando curl en el formulario siguiente:

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.

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 del 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

Información acerca de los puertos de host virtuales en Edge para la nube privada 4.16.01 y versiones posteriores

Cuando creas un host virtual, debes especificar el puerto del router que usa. Para por ejemplo, el puerto 9001.

Para las versiones 4.16.01 y posteriores de Apigee para la nube privada, de forma predeterminada, el router se ejecuta como el el usuario “apigee” que no tenga acceso a puertos con privilegios, normalmente a los puertos 1024 y versiones anteriores. Si debes crear un host virtual que vincule el router a un puerto protegido, 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 la nube privada. Ten en cuenta que para crear un nuevo virtual, 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. Son que se describe 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 IU de Edge).

Sigue estos pasos para crear un host virtual nuevo en la IU de Edge:

  1. Accede a la IU de administración de Edge.
  2. Selecciona Administrador > Hosts virtuales.
  3. Selecciona el entorno de la lista desplegable.

    Edge mostrará una lista de hosts virtuales para ese entorno.

  4. Para crear un host virtual nuevo, selecciona + Host virtual.

    Edge mostrará el formulario Crear host virtual.

    También puedes hacer clic en el nombre de un host virtual existente para editarlo.

  5. Define tu nuevo host virtual. Ten en cuenta que el campo URL base debe incluir el protocolo (es decir, agrega el prefijo “http://” o “https://” al valor del campo)

    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 versión 1.0, 1.1 o 1.2
    • Se puede configurar el puerto del host virtual
  6. Haz clic en el botón Crear para guardar el host virtual nuevo.

Crea un host virtual con la API

Para crear un host virtual con la API, crea un objeto XML que defina la un host virtual. Por ejemplo, el siguiente objeto XML define un host virtual que usa el protocolo protocolo:

<VirtualHost name="myVHost">
   <HostAliases>
     <HostAlias>DNS_name_or_IP:port</HostAlias>
   </HostAliases>
   <Interfaces/>
   <Port>9005</Port>
</VirtualHost>

Ten en cuenta que el host virtual contiene una propiedad name. Se usa el valor del La propiedad name para configurar un proxy de API y usar 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 o https: Si el host virtual está configurado para admiten 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 cadena a la que el cliente pasa el encabezado Host. En el ejemplo anterior, debes especificar 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:

  1. Crea el host virtual con el Crea un API de 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
    
  2. Crea el registro DNS para el host virtual que coincide con el alias del host.
  3. 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 Configura un proxy de API para usar un host virtual.

Modifica un host virtual

Para modificar un host virtual, sigue estos pasos:

  1. Actualiza el host virtual con el Actualiza una API de 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 en el cuerpo de la solicitud, no solo en los elementos que quieras cambiar. En este Por 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
  2. Solo para las versiones 4.16.01 y 4.16.05 de Edge para nube privada, si modificas en un host virtual existente, y habilitarás o inhabilitarás TLS sin cambiar el puerto y, luego, sigue estos pasos:
    1. Detén el router:

      /opt/apigee/apigee-service/bin/apigee-service edge-router stop
    2. Borra cualquier archivo de /opt/nginx/conf.d:

      rm -f /opt/nginx/conf.d/*
    3. Inicia el router:

      /opt/apigee/apigee-service/bin/apigee-service edge-router start
    4. Repite este paso para todos los routers.