naprawdę szybkie pytanie dotyczące wymagania HAProxy. Próbuję przepisać / zastąpić żądanie, które zostanie wysłane do wewnętrznej bazy danych.
Mam następującą przykładową domenę i identyfikatory URI, oba o tej samej nazwie domeny, ale różnych pulach serwerów WWW zaplecza.
http://domain/web1
http://domain/web2
Chcę web1, aby przejść do zaplecza webfarm1, a web2, aby przejść do webfarm2. Obecnie tak się dzieje. Jednak chcę usunąć identyfikator URI web1 lub web2, gdy żądanie zostanie wysłane do wewnętrznej bazy danych.
Oto mój 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
Jeśli przejdę do http://domain/web1
lub http://domain/web2
zobaczę to w dzienniku błędów, że żądanie na serwerze w każdym zapleczu, że żądanie jest odpowiednio dla zasobu / web1 lub / web2. Dlatego uważam, że coś jest nie tak z moim wyrażeniem regularnym, mimo że skopiowałem go i wkleiłem z Dokumentacji. http://code.google.com/p/haproxy-docs/wiki/reqrep
Podsumowanie: Próbuję kierować ruchem na podstawie identyfikatora URI, jednak chcę, aby HAProxy usunął identyfikator URI, gdy wysyła żądanie do puli zaplecza.
Dziękuję Ci!
-Jim