Configuración de Azure Application Gateway
Application Gateway tiene una serie de componentes que se combinan para enrutar las solicitudes a un grupo de servidores web y para comprobar el estado de dichos servidores web.
Configuración de front-end
Puede configurar la puerta de enlace de aplicaciones para que tenga una dirección IP pública, una dirección IP privada o ambas. Se necesita una dirección IP pública cuando se hospeda un back-end al que los clientes deben acceder por Internet con una dirección IP virtual orientada a Internet.
Configuración de back-end
El grupo de back-end se usa para enrutar las solicitudes a los servidores back-end, que atienden la solicitud. Puede crear un grupo de back-end vacío con la puerta de enlace de aplicación y, luego, agregar destinos de back-end al grupo de back-end. Los destinos pueden incluir NIC, direcciones IP públicas y privadas y conjuntos de escalado de máquinas virtuales.
Configuración de sondeos de mantenimiento
La puerta de enlace de aplicaciones de Azure supervisa de forma predeterminada el estado de todos los recursos de su grupo de back-end y elimina automáticamente del grupo los recursos que se considera que están en mal estado. Además, continúa supervisando las instancias en mal estado y las agrega de nuevo al grupo de back-end en buen estado, una vez que están disponibles y responden a los sondeos de estado. De manera predeterminada, Application Gateway envía los sondeos de mantenimiento con el mismo puerto que se define en la configuración de HTTP de back-end. Un puerto de sondeo personalizado se puede configurar mediante un sondeo de estado personalizado.
La dirección IP de origen que usa Application Gateway para los sondeos de estado depende del grupo de back-end:
- Si la dirección del servidor en el grupo de back-end es un punto de conexión público, la dirección de origen es la dirección IP pública de front-end de Application Gateway.
- Si la dirección del servidor en el grupo de back-end es un punto de conexión privado, la dirección IP de origen proviene del espacio de direcciones IP privadas de la subred de Application Gateway.
Sondeo de estado predeterminado
Una puerta de enlace de aplicación configura automáticamente un sondeo de estado predeterminado cuando no hay ningún sondeo personalizado configurado. El comportamiento de supervisión consiste en realizar una solicitud HTTP GET a las direcciones IP o nombres de dominio completo configurados en el grupo de back-end. En el caso de los sondeos predeterminados si las opciones de HTTP del back-end se configuran para HTTPS, el sondeo usa HTTPS también para comprobar el mantenimiento de los servidores de back-end.
Por ejemplo: Configure la puerta de enlace de aplicaciones para usar los servidores back-end A, B y C para recibir el tráfico de red HTTP en el puerto 80. La supervisión de estado predeterminada comprueba los tres servidores cada 30 segundos para ver que la respuesta de HTTP es correcta con un tiempo de espera de 30 segundos para cada solicitud. Una respuesta HTTP correcta tiene un código de estado entre 200 y 399. En este caso, la solicitud HTTP GET para el sondeo de estado tendrá el aspecto http://127.0.0.1/.
Si se produce un error en la comprobación de sondeo predeterminado para el servidor A, Application Gateway deja de reenviar solicitudes a este servidor. El sondeo predeterminado sigue comprobando el servidor A cada 30 segundos. Cuando el servidor A responde correctamente a una solicitud de un sondeo de estado predeterminado, Application Gateway comienza a reenviar las solicitudes al servidor de nuevo.
Configuración de sondeo de estado predeterminado
En la siguiente tabla se enumeran los valores del sondeo de estado predeterminado:
Propiedad de sondeo | Valor | Descripción |
---|---|---|
Dirección URL de sondeo | <protocol>://127.0.0.1:<port>/ |
El protocolo y el puerto se heredan de la configuración de HTTP de back-end a la que está asociado el sondeo. |
Intervalo | 30 | Cantidad de tiempo en segundos que se debe esperar antes de que se envíe el siguiente sondeo de estado. |
Tiempo de espera | 30 | Cantidad de tiempo en segundos que la puerta de enlace de la aplicación espera una respuesta de sondeo antes de marcar dicho sondeo como incorrecto. Si un sondeo devuelve un estado correcto, el back-end correspondiente se marca inmediatamente como correcto. |
Umbral incorrecto | 3 | Controla cuántos sondeos se van a enviar si se produce un error en el sondeo de estado normal. En la SKU v2, los sondeos de estado esperan el intervalo de sondeo antes de volver a comprobarlo. El servidor back-end se marca como inactivo después de que el número de errores de sondeo consecutivos alcanza el umbral incorrecto. |
Intervalos de sondeo
Todas las instancias de Application Gateway sondean el back-end de manera independiente unas de otras. La misma configuración de sondeo se aplica a cada instancia de Application Gateway. Por ejemplo, si la configuración de sondeo es enviar sondeos de estado cada 30 segundos y Application Gateway tiene dos instancias, entonces ambas instancias envían el sondeo de estado cada 30 segundos.
Si hay varios clientes de escucha, de manera que cada uno de ellos sondea el back-end de manera independiente unos de otros.
Sondeo de estado personalizado
Los sondeos personalizados ofrecen un control más específico que el seguimiento de estado. Cuando se usan sondeos personalizados, puede configurar un nombre de host personalizado, la ruta de acceso de la dirección URL, el intervalo de sondeo y la cantidad de respuestas erróneas que se aceptan antes de marcar la instancia del grupo de back-end como en mal estado, etc.
Configuración de sondeo de estado personalizado
La siguiente tabla proporciona definiciones de las propiedades de un sondeo de mantenimiento personalizado.
Propiedad de sondeo | Descripción |
---|---|
Nombre | Nombre del sondeo. Este nombre se usa para identificar y hacer referencia al sondeo en la configuración de HTTP de back-end. |
Protocolo | Protocolo usado para enviar el sondeo. Esta propiedad debe que coincidir con el protocolo definido en la configuración de HTTP de back-end a la que está asociado. |
Host | Nombre de host para enviar el sondeo. |
Path | Ruta de acceso relativa del sondeo. Las rutas de acceso válidas comienzan por '/' |
Port | Si se define, se usa esta propiedad como puerto de destino. De lo contrario, usa el mismo puerto que la configuración HTTP a la que está asociada. Esta propiedad solo está disponible en la SKU v2. |
Intervalo | Intervalo de sondeo en segundos. Este valor es el intervalo de tiempo entre dos sondeos consecutivos. |
Tiempo de espera | Tiempo de espera del sondeo en segundos. Si no se recibe una respuesta válida dentro del período de espera, el sondeo se marca como erróneo. |
Umbral incorrecto | Número de reintentos de sondeo. El servidor back-end se marca como inactivo después de que el número de errores de sondeo consecutivos alcanza el umbral incorrecto. |
Sondeo de búsqueda de coincidencia
De forma predeterminada, una respuesta HTTP (S) con el código de estado entre 200 y 399 se considera correcta. Los sondeos de estado personalizados admiten además dos criterios de coincidencia. Los criterios de coincidencia pueden usarse para modificar opcionalmente la interpretación predeterminada de lo que constituye una respuesta correcta.
Estos son los criterios de coincidencia:
- Coincidencia de código de estado de respuesta HTTP: criterio de coincidencia de sondeo para aceptar el código de respuesta, o los intervalos de códigos de respuesta, HTTP especificados por el usuario. Se admiten códigos de estado de respuesta individuales, o un intervalo de códigos de estado de respuesta, separados por coma.
- Coincidencia de cuerpo de respuesta HTTP: criterio de coincidencia de sondeo que examina el cuerpo de la respuesta HTTP y busca la coincidencia con una cadena especificada por el usuario. La coincidencia solo busca la existencia de la cadena especificada por el usuario en el cuerpo de la respuesta, no es una coincidencia de expresión regular completa.
Los criterios de coincidencia se pueden especificar mediante el cmdlet New-AzApplicationGatewayProbeHealthResponseMatch.
Configuración de los clientes de escucha
Un cliente de escucha es una entidad lógica que comprueba las solicitudes de conexión entrantes mediante el puerto, protocolo, host y dirección IP. Al configurar un cliente de escucha, debe especificar valores que coincidan con los valores correspondientes de la solicitud entrante en la puerta de enlace.
Cuando crea una puerta de enlace de aplicaciones mediante Azure Portal, también puede crear un cliente de escucha predeterminado eligiendo el protocolo y el puerto de este cliente. Puede elegir si habilita compatibilidad con HTTP2 en el cliente de escucha o no. Después de crear la puerta de enlace de aplicaciones, puede editar la configuración de ese cliente de escucha predeterminado (appGatewayHttpListener) o crear otros clientes nuevos.
Tipo de cliente de escucha
Cuando crea un cliente de escucha, debe elegir entre básico y multisitio.
- Básica: Todas las solicitudes se aceptan y reenvían a grupos de back-end.
- Multisitio: las solicitudes se reenvían a distintos grupos de back-end en función del encabezado de host o los nombres de host. Debe especificar un nombre de host que coincida con la solicitud entrante.
Orden de procesamiento de los clientes de escucha
En el caso de la SKU v1, la correspondencia de las solicitudes se establece según el orden de las reglas y el tipo de cliente de escucha. Para la SKU v2, los clientes de escucha multisitio se procesan antes que los básicos.
Dirección IP de front-end
Elija la dirección IP de front-end que va a asociar a este cliente de escucha. El cliente de escucha atiende las solicitudes entrantes en esta dirección IP.
Puerto de front-end
Elija el puerto de front-end. Seleccione un puerto existente o cree uno nuevo. Elija cualquier valor del intervalo de puertos permitidos. Puede usar no solo los puertos conocidos, como el 80 y el 443, sino cualquier puerto permitido personalizado que sea adecuado. Se puede usar un puerto para los clientes de escucha de acceso público y los de acceso privado.
Protocolo
Elija HTTP o HTTPS:
- HTTP: el tráfico entre el cliente y la puerta de enlace de aplicación no está cifrado.
- HTTPS: habilita la terminación TLS o el cifrado TLS de un extremo a otro. La conexión TLS termina en la puerta de enlace de aplicación. Se cifrará el tráfico entre el cliente y la puerta de enlace de aplicaciones. Si quiere cifrado TLS de un extremo a otro, debe elegir HTTPS y configurar el valor de HTTP de back-end.
Para configurar la terminación TLS y el cifrado TLS de un extremo a otro, debe agregar un certificado al cliente de escucha para permitir a la puerta de enlace de aplicaciones derivar una clave simétrica. La clave simétrica se usa para cifrar y descifrar el tráfico de la puerta de enlace. El certificado de la puerta de enlace debe estar en formato de Intercambio de información personal (PFX). Este formato le permite exportar la clave privada que usa la puerta de enlace para cifrar y descifrar el tráfico.
Información general sobre redireccionamiento
Puede usar Application Gateway para redirigir el tráfico. Cuenta con un mecanismo de redireccionamiento genérico que permite el redireccionamiento del tráfico recibido en un cliente de escucha a otro cliente de escucha o a una dirección URL de un sitio externo. El redireccionamiento simplifica la configuración de la aplicación y optimiza el uso de los recursos. Se admiten estos tipos de redireccionamiento:
- 301 (redirección permanente)
- 302 (encontrado)
- 303 (ver otras)
- 307 (redirección temporal)
La compatibilidad con la redirección de Application Gateway ofrece las siguientes funcionalidades:
- Redireccionamiento global: redirige de un cliente de escucha a otro cliente de escucha en la puerta de enlace. Permite la redirección de HTTP a HTTPS en un sitio.
- Redireccionamiento basado en rutas de acceso: habilita el redireccionamiento de HTTP a HTTPS solo en un área de sitio específica, por ejemplo, un área de carro de la compra identificada mediante /cart/*.
- Redireccionamiento al sitio externo: requiere un nuevo objeto de configuración de redireccionamiento, que especifica el cliente de escucha de destino o el sitio externo al que se desea realizar el redireccionamiento. El elemento de configuración también admite opciones para anexar la cadena de consulta y la ruta de acceso URI para la dirección URL redirigida. La configuración de redireccionamiento se adjunta al cliente de escucha de origen mediante una regla nueva.
Para más información sobre cómo configurar el redireccionamiento en Application Gateway, consulte Redireccionamiento basado en rutas de dirección URL con PowerShell: Azure Application Gateway.
Reglas de enrutamiento de solicitudes de Application Gateway
Una regla de enrutamiento de solicitudes es un componente clave de una puerta de enlace de aplicaciones, ya que determina cómo se enruta el tráfico en el cliente de escucha. La regla enlaza el cliente de escucha, el grupo de servidores back-end y la configuración HTTP de back-end.
Cuando un cliente de escucha acepta una solicitud, la regla de enrutamiento de solicitudes reenvía la solicitud al back-end o la redirige a otra parte. Si la solicitud se reenvía al back-end, la regla de enrutamiento de solicitudes define a qué grupo de servidores back-end reenviarla. Esta regla determina también si se van a reescribir los encabezados de la solicitud. Un cliente de escucha se puede asociar a una regla.
Hay dos tipos de reglas de enrutamiento de solicitudes:
Básica: Todas las solicitudes del agente de escucha asociado (por ejemplo, blog.contoso.com/*) se reenvieron al grupo de back-end asociado mediante la configuración HTTP asociada.
Basado en ruta de acceso: Esta regla de enrutamiento le permite enrutar las solicitudes en el agente de escucha asociado a un grupo de back-end específico, en función de la dirección URL de la solicitud. Si la ruta de acceso de la dirección URL de una solicitud coincide con el patrón de ruta de acceso de una regla basada en la ruta de acceso, la regla enruta esa solicitud. El patrón de ruta de acceso solo se aplica a la ruta de acceso de dirección URL, no a sus parámetros de consulta. Si la ruta de acceso de dirección URL de una solicitud del cliente de escucha no coincide con ninguna de las reglas basadas en la ruta de acceso, enruta la solicitud al grupo back-end y la configuración de HTTP predeterminados.
Configuración de HTTP
Una puerta de enlace de aplicaciones enruta el tráfico a los servidores back-end (especificados en la regla de enrutamiento de solicitudes que incluye la configuración de HTTP) mediante el número de puerto, el protocolo y demás configuración detallados en este componente.
El puerto y el protocolo usados en la configuración de HTTP determinan si el tráfico entre los servidores back-end y de puerta de enlace de aplicaciones está cifrado (con TLS de un extremo a otro) o sin cifrar.
Este componente también se usa para:
Determinar si una sesión de usuario se va a mantener en el mismo servidor mediante la afinidad de sesión basada en cookies.
Quitar miembros del grupo back-end correctamente con la purga de conexiones.
Asociar un sondeo personalizado para supervisar el mantenimiento del back-end, establecer el intervalo de tiempo de expiración de las solicitudes, reemplazar el nombre de host y la ruta de acceso de la solicitud y proporcionar facilidad de uso con un clic para especificar la configuración del back-end de App Service.