domanda davvero veloce riguardo a HAProxy reqrep. Sto cercando di riscrivere / sostituire la richiesta che viene inviata al back-end.
Ho il seguente dominio e URI di esempio, entrambi con lo stesso nome di dominio, ma pool di server Web back-end diversi.
http://domain/web1
http://domain/web2
Voglio che web1 vada a backf webfarm1 e web2 che vada a webfarm2. Attualmente questo succede. Tuttavia, desidero rimuovere l'URI web1 o web2 quando la richiesta viene inviata al back-end.
Ecco il mio 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
Se vado http://domain/web1
o http://domain/web2
lo vedo nei log degli errori che la richiesta su un server in ciascun back-end è che la richiesta è rispettivamente per la risorsa / web1 o / web2. Pertanto credo che ci sia qualcosa di sbagliato nella mia espressione regolare, anche se l'ho copiato e incollato dalla Documentazione. http://code.google.com/p/haproxy-docs/wiki/reqrep
Riepilogo: sto cercando di instradare il traffico in base all'URI, tuttavia desidero che HAProxy rimuova l'URI quando invia la richiesta al pool back-end.
Grazie!
-Jim