Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero
En HAProxy, los ACLs que involucran el host se utilizan para verificar y comparar el valor del encabezado HTTP Host. Los diferentes tipos de ACLs de host son muy útiles cuando se necesita enrutar el tráfico a diferentes backends basándose en el dominio o subdominio al que se está accediendo. Aquí te detallo los tipos más comunes de ACLs relacionadas con el host:
Tipos de ACL de host en HAProxy:
hdr(host): Compara el valor del encabezadoHostcon una cadena específica. Se utiliza para verificar si la solicitud HTTP coincide con un dominio o subdominio específico.
Ejemplo:acl is_example_com hdr(host) -i example.comuse_backend example_backend if is_example_com
-i: El modificador-iindica que la comparación es insensible a mayúsculas/minúsculas.
hdr(host) -m reg: Compara el valor del encabezadoHostusando una expresión regular. Esto es útil si deseas hacer coincidencias más flexibles, como verificar múltiples subdominios o patrones.
Ejemplo:acl is_subdomain hdr(host) -m reg ^.*\.example\.com$use_backend subdomain_backend if is_subdomain
-m reg: El modificador-m regpermite el uso de expresiones regulares en la comparación.
hdr_beg(host): Compara si el encabezadoHostcomienza con una cadena específica. Esto es útil si deseas hacer coincidir un dominio base o varios subdominios.
Ejemplo:acl is_example hdr_beg(host) -i exampleuse_backend example_backend if is_example
-i: El modificador hace que la comparación sea insensible a mayúsculas/minúsculas.
hdr_end(host): Compara si el encabezadoHosttermina con una cadena específica. Esto es útil cuando se desea hacer coincidir todos los subdominios o dominios de un patrón específico.
Ejemplo:acl is_com_domain hdr_end(host) -i .comuse_backend com_backend if is_com_domainhdr_cnt(host): Verifica la cantidad de veces que aparece un patrón específico en el encabezadoHost. Esto puede ser útil para casos muy específicos de enrutamiento, aunque no es tan común.
Ejemplo:acl is_multiple_hosts hdr_cnt(host) 2use_backend multiple_hosts_backend if is_multiple_hostshdr(host) -m str: Compara el valor del encabezadoHostcon una cadena literal específica, permitiendo coincidencias exactas.
Ejemplo:acl is_api_host hdr(host) -m str api.example.comuse_backend api_backend if is_api_host
Resumen de los modificadores:
-i: Insensible a mayúsculas/minúsculas.-m reg: Permite el uso de expresiones regulares.-m str: Compara cadenas exactas.-m beg: Compara el inicio de la cadena.-m end: Compara el final de la cadena.
Estos tipos de ACLs de host son esenciales para enrutar tráfico a diferentes backends basados en el dominio o subdominio al que se accede, lo que permite una configuración flexible y personalizada en HAProxy.