Real pregunta rápida sobre HAProxy reqrep. Estoy tratando de reescribir / reemplazar la solicitud que se envía al backend.
Tengo el siguiente dominio de ejemplo y URI, ambos comparten el mismo nombre de dominio, pero diferentes grupos de servidores web de fondo.
http://domain/web1
http://domain/web2
Quiero que web1 vaya al backend webfarm1, y web2 para ir a webfarm2. Actualmente esto sucede. Sin embargo, quiero quitar el URI web1 o web2 cuando la solicitud se envía al backend.
Aquí está mi haproxy.cfg
frontend webVIP_80
mode http
bind :80
#acl routing to backend
acl web1_path path_beg /web1
acl web2_path path_beg /web2
#which backend
use_backend webfarm1 if web1_path
use_backend webfarm2 if web2_path
default_backend webfarm1
backend webfarm1
mode http
reqrep ^([^\ ]*)\ /web1/(.*) \1\ /\2
balance roundrobin
option httpchk HEAD /index HTTP/1.1\r\nHost:\ example.com
server webtest1 10.0.0.10:80 weight 5 check slowstart 5000ms
server webtest2 10.0.0.20:80 weight 5 check slowstart 5000ms
backend webfarm2
mode http
reqrep ^([^\ ]*)\ /web2/(.*) \1\ /\2
balance roundrobin
option httpchk HEAD /index HTTP/1.1\r\nHost:\ example.com
server webtest1-farm2 10.0.0.110:80 weight 5 check slowstart 5000ms
server webtest2-farm2 10.0.0.120:80 weight 5 check slowstart 5000ms
Si voy http://domain/web1
o http://domain/web2
lo veo en los registros de error, la solicitud en un servidor en cada servidor indica que la solicitud es para el recurso / web1 o / web2 respectivamente. Por lo tanto, creo que hay algo mal con mi expresión regular, a pesar de que la copié y pegué de la Documentación. http://code.google.com/p/haproxy-docs/wiki/reqrep
Resumen: Estoy tratando de enrutar el tráfico basado en URI, sin embargo, quiero que HAProxy elimine el URI cuando envíe la solicitud al grupo de back-end.
¡Gracias!
-Jim