HAProxy reqrep ile ilgili gerçek hızlı bir soru. Arka uçtan gönderilen isteği yeniden yazmaya / değiştirmeye çalışıyorum.
Aşağıdaki örnek etki alanı ve URI'lar var, ikisi de aynı etki alanı adını paylaşıyor, ancak farklı arka uç web sunucusu havuzları.
http://domain/web1
http://domain/web2
Web1'in webfarm1'e ve web2'nin webfarm2'ye gitmesini istiyorum. Şu anda bu oluyor. Bununla birlikte, istek arka uçtan gönderildiğinde web1 veya web2 URI'sini çıkarmak istiyorum.
İşte benim 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
Eğer gidersem http://domain/web1
ya http://domain/web2
da hatayı görürsem, her bir arka uçtaki bir sunucudaki isteğin, istemin sırasıyla kaynak / web1 veya / web2 için olduğu anlamına gelir. Bu nedenle, düzenli ifademle ilgili olarak, Belgelerden kopyalayıp yapıştırdığım halde yanlış bir şey olduğuna inanıyorum. http://code.google.com/p/haproxy-docs/wiki/reqrep
Özet: URI'ya dayalı trafik yönlendirmeye çalışıyorum, ancak isteği arka uç havuzuna gönderdiğinde HAProxy'nin URI'yi soymasını istiyorum.
Teşekkür ederim!
Jim