Español
EninSoft – recursos para programadores web
  • Contactar
  • Contactar
EninSoft - recursos para programadores web > Eninsoft > clúster > Uso de ACL en HAproxy – Redireccionar según el contenido de un parámetro GET

Uso de ACL en HAproxy – Redireccionar según el contenido de un parámetro GET

  • octubre 26, 2018
  • Categoría: clúster linux virtualización
No hay comentarios

Importante: Esta información es para uso lúdico personal. En ningún caso se pretende dar conocimientos, consejos, formaciones, herramientas, ni soluciones técnicas de ámbito comercial ni profesional. Simplemente es información que se ha redactado en finalidad de recordatorio de ciertos proyectos realizados. Si usted no está seguro de la fiabilidad de la información, no cumple con sus expectativas o no es de su agrado, le ruego que abandone este sitio web. Para ver todas las exclusiones garantía y de responsabilidad acceda a la sección Aviso Legal.

El uso de ACL en haproxy es una de las funcionalidades más importantes de esta herramienta. Permite redirigir tráfico a distintos servidores o puertos según las características de las peticiones. Se puede filtrar por dominio, url, host, parámetros, ip de origen, …

En este ejemplo, se recibe un XML en la variable ‘xml’. Si el XML contiene el string XXX o YYY lo enviaremos a un puerto con un rendimiento inferior. Si no contiene estos strings, la petición se mandará a los puertos por defecto.

Se ha usado puertos en vez de distintos servidores, para hacer la prueba rápidamente en desarrollo.

La ACL quedaría de esta forma

acl server_lower url_param(xml) -m reg (XXX|YYY)
use_backend XML_server_lower if server_lower

default_backend XML_server

Si se quiere se puede definir la ACL en una sola línea (inline)

use_backend XML_server_lower if { url_param(xml) -m reg (XXX|YYY) }

El archivo de configuración completo


global
        chroot /var/lib/haproxy
        stats socket /run/haproxy/admin.sock mode 660 level admin
        stats timeout 30s
        user haproxy
        group haproxy
        daemon

        # Default SSL material locations
        ca-base /etc/ssl/certs
        crt-base /etc/ssl/private

        ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
        ssl-default-bind-options no-sslv3

defaults
        mode    http
        timeout connect 5000
        timeout client  50000
        timeout server  50000
        errorfile 400 /etc/haproxy/errors/400.http
        errorfile 403 /etc/haproxy/errors/403.http
        errorfile 408 /etc/haproxy/errors/408.http
        errorfile 500 /etc/haproxy/errors/500.http
        errorfile 502 /etc/haproxy/errors/502.http
        errorfile 503 /etc/haproxy/errors/503.http
        errorfile 504 /etc/haproxy/errors/504.http

frontend XML
        bind *:8080
        mode http

        #acl server_lower url_param(xml) -m sub XXX # Solo un valor
        acl server_lower url_param(xml) -m reg (XXX|YYY)
        use_backend XML_server_lower if server_lower

        default_backend XML_server

backend XML_server
        mode http
        #balance roundrobin
        balance leastconn
        option tcp-check
        server web01 192.168.0.160:80 check
        server web02 192.168.0.160:81 check

backend XML_server_lower
        mode http
        #balance roundrobin
        balance leastconn
        option tcp-check
        server web03 192.168.0.160:82 check

listen stats 192.168.0.160:8100
        stats enable
        stats uri /haproxy?stats
        stats realm Strictly\ Private
        stats auth admin:mikimiki

Comprobación, se envía un XML con el valor XXX

Otra funcionalidad muy útil, es permitir o restringir el acceso por IP source. Con esta instrucción crearemos una WhiteList con las IP que tendrán acceso a nuestro cluster. El resto de IP se les denegará el servicio.

#firewall
http-request deny if !{ src -f /etc/haproxy/whitelist.acl }

Para más documentación y configuraciones, se recomiendan estas guías:
https://www.haproxy.com/blog/introduction-to-haproxy-acls/
https://www.haproxy.org/download/1.4/doc/configuration.txt

acl condiciones filtrar haproxy parametro trafico url

Deja un comentario Cancelar respuesta

Buscar en la web

Publicaciones recientes

  • Instalación de YUI compressor en Debian 9 Stretch
  • Eliminar completamente MariaDB o Mysql en Debian9
  • Desactivar los Local access log en Tomcat9
  • Instalar PHP 7.3 en Debian 9 Stretch
  • Migración “estadistiques_xml_pull”

Categorias

  • benchmark
  • bug
  • clúster
  • correo
  • css
  • desarrollo
  • documentación
  • framework
  • hardware
  • imagen
  • java
  • jquery
  • linux
  • mac (osx)
  • minar
  • monedas virtuales
  • mysql
  • pci dss
  • php
  • python
  • SAP
  • seguridad
  • Sin categorizar
  • sodimm
  • utilidades
  • virtualización
  • WAF
  • web
  • windows
  • wordpress
Copyright © 2018 EninSoft.com. Todos los derechos reservados
  • Aviso legal
  • Política de privacidad
  • Política de cookies
Buscar
Utilizamos cookies solamente para la analítica de visitas del sitio web, no guardamos ningún tipo de dato personal. Si continua navegando consideramos que acepta su uso.Acepto Leer más