Transformaciones para las reglas de oyente - Elastic Load Balancing

Transformaciones para las reglas de oyente

Una transformación de regla reescribe las solicitudes entrantes antes de que se enruten hacia los destinos. La reescritura de una solicitud no cambia la decisión de enrutamiento que se toma al evaluar las condiciones de la regla. Esto resulta útil cuando los clientes envían una URL o un encabezado de host distintos de los que esperan los destinos.

El uso de transformaciones de reglas traslada al equilibrador de carga la responsabilidad de modificar rutas, cadenas de consulta y encabezados de host. Esto elimina la necesidad de agregar lógica de modificación personalizada en el código de la aplicación o de depender de un proxy de terceros para realizar las modificaciones.

Los equilibradores de carga de aplicaciones admiten las siguientes transformaciones para las reglas de oyente.

Transformaciones
host-header-rewrite

Reescrituras del encabezado de host en la solicitud. La transformación utiliza una expresión regular para hacer coincidir un patrón en el encabezado de host y luego lo reemplaza por una cadena de sustitución.

url-rewrite

Reescribe la URL de la solicitud. La transformación utiliza una expresión regular para hacer coincidir un patrón en la URL de la solicitud y luego lo reemplaza por una cadena de sustitución.

Conceptos básicos de las transformaciones
  • Puede agregar una transformación de reescritura del encabezado de host y una transformación de reescritura de URL por regla.

  • No puede agregar una transformación a la regla predeterminada.

  • Si no hay coincidencia de patrones, la solicitud original se envía al destino.

  • Si hay una coincidencia de patrones, pero la transformación falla, se devuelve un error HTTP 500.

Transformaciones de reescritura del encabezado de host

Puede modificar el nombre de dominio especificado en el encabezado de host.

ejemplo Ejemplo de transformación del encabezado de host

Puede especificar una transformación cuando crea o modifica una regla. Para obtener más información, consulte los comandos create-rule y modify-rule. A continuación, se muestra un ejemplo de transformación del encabezado de host. Esta transformación convierte el encabezado de host en un punto de conexión interno.

[ { "Type": "host-header-rewrite", "HostHeaderRewriteConfig": { "Rewrites": [ { "Regex": "^mywebsite-(.+).com$", "Replace": "internal.dev.$1.myweb.com" } ] } } ]

Por ejemplo, esta transformación reescribe el encabezado de host https://mywebsite-example.com/project-a como https://internal.dev.example.myweb.com/project-a.

Transformaciones de reescritura de URL

Puede modificar la ruta o la cadena de consulta de la URL. Al reescribir la URL en el nivel del equilibrador de carga, las URL del frontend pueden mantenerse coherentes para los usuarios y los motores de búsqueda, incluso si los servicios de backend cambian. También puede simplificar cadenas de consulta de URL complejas para que resulten más fáciles de introducir para los usuarios.

Tenga en cuenta que no puede modificar el protocolo ni el puerto de la URL; solo la ruta y la cadena de consulta.

ejemplo Ejemplo de transformación de reescritura de URL

Puede especificar una transformación cuando crea o modifica una regla. Para obtener más información, consulte los comandos create-rule y modify-rule. A continuación se muestra un ejemplo de transformación de reescritura de URL. Esta transformación convierte la estructura de directorios en una cadena de consulta.

[ { "Type": "url-rewrite", "UrlRewriteConfig": { "Rewrites": [ { "Regex": "^/dp/([A-Za-z0-9]+)/?$", "Replace": "/product.php?id=$1" } ] } } ]

Por ejemplo, esta transformación reescribe la URL de la solicitud https://www.example.com/dp/B09G3HRMW como https://www.example.com/product.php?id=B09G3HRMW.

Cómo se diferencian las reescrituras de URL de las redirecciones de URL

Característica Redirecciones de URL Reescrituras de URL
Visualización de la URL Cambia en la barra de direcciones del navegador No cambia en la barra de direcciones del navegador
Códigos de estado Usa 301 (permanente) o 302 (temporal) No hay cambio en el código de estado
En proceso Del lado del navegador Del lado del servidor
Usos comunes Cambio de dominio, consolidación de sitios web, corrección de enlaces rotos URL limpias para SEO, ocultar estructuras complejas, proporcionar asignaciones de URL heredadas