Acerca de los hosts virtuales

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

En Edge, un router controla todo el tráfico de API entrante. Eso significa que todas las solicitudes HTTP y HTTPS a un proxy de API las maneja primero un router perimetral.

Un host virtual te permite alojar varios nombres de dominio en un servidor. En Edge, el servidor corresponde a un router perimetral. Cuando se definen varios hosts virtuales en un router, este puede controlar las solicitudes a la API para varios nombres de dominio.

Un host virtual en Edge define el protocolo de acceso (HTTP o HTTPS), un puerto de router abierto y un alias de host. El alias del host suele ser el nombre de dominio del DNS que se asigna a la dirección IP del router.

Por ejemplo, en la siguiente imagen, se muestra un router con dos definiciones de host virtual:

El primer host virtual maneja las solicitudes HTTPS en el dominio domainName1 y el segundo maneja las solicitudes HTTP en domainName2.

En una solicitud a un proxy de API, el router compara el encabezado Host de la solicitud entrante con la lista de alias de host definidos por todos los hosts virtuales para determinar qué host virtual maneja la solicitud.

Información acerca de las definiciones de host virtuales

Los hosts virtuales contienen la siguiente información:

  • El nombre interno del host virtual. Usa ese nombre para hacer referencia al host virtual en tus proxies de API y cuando lo configures.
  • El alias de host del host virtual. Por lo general, el alias del host es el nombre de dominio DNS que se asigna a la dirección IP del router. El encabezado Host de las solicitudes de proxy de API debe contener el alias del host virtual.
  • Un puerto abierto en el router
  • Si TLS (acceso HTTPS) está habilitado o no (acceso HTTP)

Por ejemplo, debes especificar la siguiente información cuando creas un host virtual:

  • nombre = myvhost
  • alias del host = apis.acme.com
  • puerto = 443
  • TLS está habilitado

Según la configuración anterior para el host virtual, una solicitud a un proxy de API usa el siguiente formulario:

https://apis.acme.com/{proxy-base-path}/{resource-path}

Donde:

  • {proxy-base-path} se define cuando creas un proxy de API y es único para cada proxy de API. Por ejemplo:
    https://apis.acme.com/characters
  • {resource-path} es la ruta a un recurso al que se puede acceder a través del proxy de API. Por ejemplo:
    https://apis.acme.com/characters/coyote
    https://apis.acme.com/characters/roadrunner

Acerca de los hosts virtuales en Edge para Cloud

Cada organización de Edge incluye automáticamente dos entornos (test y prod), dos hosts virtuales en cada entorno (predeterminado y seguro) y registros DNS para cada alias de host.

El alias de host de cada host virtual proporcionado por Apigee contiene el nombre de la organización y el entorno, como se muestra en la siguiente tabla:

Entorno Nombre de host virtual Alias del host Puerto TLS habilitado
prod predeterminado {org-name}-prod.apigee.net 80 No
seguras {org-name}-prod.apigee.net 443
prueba predeterminado {org-name}-test.apigee.net 80 No
seguras {org-name}-test.apigee.net 443

Por ejemplo, el nombre de dominio predeterminado de una organización llamada "myorg" en el entorno prod es "myorg-prod.apigee.net". Por lo tanto, para acceder a un proxy de API en esa organización, debes usar una URL con el siguiente formato:

http://myorg-prod.apigee.net/{proxy-base-path}/{resource-path}
https://myorg-prod.apigee.net/{proxy-base-path}/{resource-path}

Planes pagados de Apigee: Es posible que un nombre de dominio que contenga “apigee.net” no sea lo que quieras exponer a tus clientes. Puedes usar una entrada de DNS y un registro CNAME para asignar un nombre de dominio a tu organización en Edge. También debes crear un host virtual con el alias del host configurado con ese nombre de dominio. Esto permite que los desarrolladores accedan a tu API a través de un dominio específico de tu empresa.

Este es un ejemplo de un dominio personalizado en Edge:

https://apis.acme.com/{proxy-base-path}/{resource-path}

Acerca de los hosts virtuales en Edge para la nube privada

Cuando instalas Apigee Edge para la nube privada, no se crean organizaciones, entornos ni hosts virtuales predeterminados para ti. Después de completar el proceso de instalación de Edge, la primera acción suele ser crear una organización, un entorno y un host virtual a través del proceso de “integración”.

Para realizar la integración, ejecuta el siguiente comando en el nodo del servidor de administración perimetral:

/opt/apigee/apigee-service/bin/apigee-service apigee-provision setup-org -f configFile

donde configFile contiene la información necesaria para crear un usuario, una organización, un entorno y un host virtual.

Por ejemplo, puedes crear lo siguiente:

  • Un usuario que elijas para actuar como administrador de la organización
  • Una organización llamada example
  • Un entorno de la organización llamado prod
  • Un host virtual en el entorno llamado default que permite el acceso HTTP en el puerto 9001
  • Un alias de host del nombre de DNS que se usa para acceder al router, o la dirección IP del router y el puerto del host virtual con el formato IP:9001.

Más adelante, puedes agregar cualquier cantidad de organizaciones, entornos y hosts virtuales a tu versión local de Edge. Para obtener más información, consulta:

Los hosts virtuales se abren en el router perimetral. Por lo tanto, debes asegurarte de que el puerto que especifiques para el host virtual esté abierto en el router. Puedes usar un comando del siguiente formulario para abrir un puerto:

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9001 -j ACCEPT --verbose

Después de ejecutar ese comando, puedes acceder a tus APIs mediante una URL con el siguiente formato:

http://<router-ip>:9001/{proxy-base-path}/{resource-path}

Por lo general, no publicas tus APIs para los clientes con una dirección IP y un número de puerto. sino que se define una entrada DNS para el router y el puerto. Por ejemplo:

http://myAPI.myCo.com/{proxy-base-path}/{resource-path}

Cuando defines la entrada de DNS, también debes crear un host virtual con un alias de host que coincida con el nombre de dominio de la entrada de DNS. En el ejemplo anterior, debes especificar un alias de host de myAPI.myCo.com cuando creas el host virtual.

Información acerca de los alias de host y los nombres de DNS

Una de las propiedades que estableces para un host virtual es el alias del host. Por lo general, el alias del host es el nombre de DNS del host virtual. La forma en que estableces el alias del host depende del tipo de instalación de Edge: nube o nube privada.

Alias de host y nombres de DNS en Edge para la nube

En Edge para Cloud, cuando creas una organización de Edge por primera vez, Apigee crea de forma automática dos entornos (test y prod), dos hosts virtuales en cada entorno (predeterminado y seguro) y registros DNS para cada host virtual.

El alias de host de los hosts virtuales contiene el nombre de la organización y el entorno. Por lo tanto, una solicitud a través de un host virtual tiene el siguiente formato:

  • http://{org-name}-prod.apigee.net/{proxy-base-path}/{resource-path}
  • https://{org-name}-prod.apigee.net/{proxy-base-path}/{resource-path}
  • http://{org-name}-test.apigee.net/{proxy-base-path}/{resource-path}
  • https://{org-name}-test.apigee.net/{proxy-base-path}/{resource-path}

Por lo general, es preferible crear hosts virtuales que usen tu nombre de dominio, en lugar de usar el dominio apigee.net predeterminado. Para ello, primero debes crear tu propia entrada de DNS y registro CNAME.

En la siguiente figura, se muestra una configuración típica de la forma en que Edge procesa una solicitud a la API:

En este ejemplo, sucede lo siguiente:

  • api.acme.com es el nombre de dominio que quieres.
  • Define una entrada de DNS y un registro CNAME para apuntar api.acme.com a acme-prod.apigee.net.
  • La solicitud contiene el encabezado Host que el router usa para determinar el host virtual que controla la solicitud.

En este ejemplo, se especifica la siguiente información en una definición de host virtual:

  • nombre = myvhost
  • alias del host = apis.acme.com
  • puerto = 443
  • Habilitar el acceso a TLS

Consulta Configura hosts virtuales para la nube a fin de obtener más información.

Alias de host y nombres de DNS en Edge para la nube privada

Al igual que con Edge para la nube, debes crear hosts virtuales que usen tu propio nombre de dominio para el alias del host. Luego, crearás tu propia entrada DNS y registro CNAME para acceder a esos hosts virtuales.

Una de las diferencias entre Cloud y la nube privada es que, en Cloud Apigee, los nombres de DNS se crearon automáticamente para tus organizaciones, con el siguiente formato:

  • name=default: http://{org-name}-{env-name}.apigee.net (Puerto del router 80)
  • name=secure: https://{org-name}-{env-name}.apigee.net (Puerto del router 443)

En Edge para la nube privada, debes crear las entradas de DNS para la dirección IP y el puerto de tu router.

Por ejemplo, especifica esta información en una definición de host virtual:

  • nombre = myvhost
  • alias del host = apis.acme.com
  • puerto = 9001
  • Habilitar el acceso a TLS

En la siguiente figura, se muestra una configuración típica de la forma en que Edge procesa una solicitud a la API:

En este ejemplo, sucede lo siguiente:

  • api.acme.com es el nombre de dominio que quieres.
  • Debes definir una entrada de DNS y un registro CNAME para apuntar api.acme.com a la dirección IP y al puerto del router.
  • La solicitud contiene el encabezado Host que el router usa para determinar el host virtual que controla la solicitud.

Consulta Configura hosts virtuales para la nube privada a fin de obtener más información.

Alias de host y comodines

Puedes incluir el carácter comodín “*” en el alias del host. El carácter comodín “*” solo puede estar al comienzo (antes del primer “.”) del alias del host y no se puede combinar con otros caracteres.

El siguiente es un ejemplo de un alias de host válido con un comodín:

*.example.com

Los siguientes ejemplos no son válidos:

  www.*.example.com
  w*.example.com

El uso de un comodín en un alias de host virtual permite que los proxies de API controlen las llamadas dirigidas a varios subdominios, como alpha.example.com, beta.example.com o live.example.com. El uso de un alias comodín también te ayuda a usar menos hosts virtuales por entorno para mantenerte dentro de los límites del producto, ya que un host virtual con un comodín cuenta como un solo host virtual.

El certificado TLS para el host virtual debe tener un comodín coincidente en el nombre CN del certificado. Por ejemplo, *.example.com.

Acerca de las propiedades de host virtual

En Edge, un host virtual se representa con un objeto XML. Por ejemplo, el siguiente objeto XML define un host virtual:

<VirtualHost name="vhostName">
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <!-- Private Cloud only -->
        <Interface>interfaceName</Interface>
    <Port>portNumber</Port>
    <BaseURL>http://myCo.com<</BaseUrl>
    <OCSPStapling>off</OCSPStapling>
    <RetryOptions/>
   <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>ref://keystoreRef</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>ref://truststoreRef</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
    </SSLInfo>
    <Properties>
        <Property name="proxy_read_timeout">timeout</Property>
        <Property name="keepalive_timeout">timeout</Property>
        <Property name="proxy_request_buffering">onOff</Property>
        <Property name="proxy_buffering">onOff</Property>
        <Property name="ssl_protocols">protocolList</Property>
        <Property name="ssl_ciphers">cipherList</Property>
    </Properties>
</VirtualHost>

La lista de propiedades que puedes establecer se basa en si usas Edge para la nube o Edge para la nube privada. Si usas Edge para la nube privada, la lista de propiedades disponibles también depende de tu versión de Edge. Para obtener una descripción completa de todas las propiedades de un host virtual, consulta la Referencia de propiedades de host virtual.

Si quieres obtener más información sobre la creación de hosts virtuales para tu versión específica de Edge, consulta los siguientes vínculos: