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 |