vraie question rapide concernant HAProxy reqrep. J'essaie de réécrire / remplacer la demande qui est envoyée au backend.
J'ai l'exemple de domaine et les URI suivants, partageant tous les deux le même nom de domaine, mais différents pools de serveurs Web principaux.
http://domain/web1
http://domain/web2
Je veux que web1 passe au backend webfarm1 et web2 à webfarm2. Actuellement, cela se produit. Cependant, je souhaite supprimer l'URI web1 ou web2 lorsque la demande est envoyée au backend.
Voici mon 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 je vais dans http://domain/web1
ou http://domain/web2
je vois dans les journaux d'erreurs que la demande sur un serveur dans chaque backend que le requst est pour la ressource / web1 ou / web2 respectivement. Par conséquent, je crois qu'il y a quelque chose de mal avec mon expression régulière, même si je l'ai copiée et collée à partir de la documentation. http://code.google.com/p/haproxy-docs/wiki/reqrep
Résumé: J'essaie d'acheminer le trafic en fonction de l'URI, mais je veux que HAProxy supprime l'URI lorsqu'il envoie la demande au pool principal.
Merci!
-Jim