J'ai une ferme HTTP avec la configuration suivante:
listen webfarm 10.254.23.225:80
mode http
balance roundrobin
cookie SERVERID insert
option httpclose
option forwardfor
option httpchk HEAD /check.txt HTTP/1.0
server webA 10.254.23.4:80 cookie A check
server webB 10.248.23.128:80 cookie B check
Je voudrais ajouter une option qui transmettrait toutes les demandes d'un URI spécifique (I.E/SPÉCIAL) à un 3ème serveur Web. Comment devrais-je le faire?
Voici un article de blog que j'ai écrit sur l'équilibrage de la charge basé sur les en-têtes d'accueil:
http://www.mattbeckman.com/2009/09/18/USTION-Le-Acl-in-haproxy-for-Naminging-Named-Virtual-hosts/
Si vous souhaitez faire correspondre une uri ou un répertoire, je vous suggérerais d'utiliser Path_BEG au lieu de HDR_END qui est utilisé dans l'exemple fourni sur cette page. Vous trouverez ci-dessous un exemple de la manière dont vous pourriez le faire avec votre configuration:
frontend http-in
bind 10.254.23.225:80
acl has_special_uri path_beg /special
use_backend special_server if has_special_uri
default_backend webfarm
backend webfarm
balance roundrobin
cookie SERVERID insert
option httpchk HEAD /check.txt HTTP/1.0
option httpclose
option forwardfor
server webA 10.254.23.4:80 cookie webA check
server webB 10.248.23.128:80 cookie webB check
backend special_server
balance roundrobin
cookie SERVERID insert
option httpchk HEAD /check.txt HTTP/1.0
option httpclose
option forwardfor
server webC 10.0.0.1:80 cookie webC check
J'espère que cela pourra aider!