pertanyaan cepat nyata tentang HAProxy reqrep. Saya mencoba menulis ulang / mengganti permintaan yang dikirimkan ke backend.
Saya memiliki contoh domain dan URI berikut, keduanya berbagi nama domain yang sama, tetapi kumpulan server web backend yang berbeda.
http://domain/web1
http://domain/web2
Saya ingin web1 pergi ke backend webfarm1, dan web2 pergi ke webfarm2. Saat ini memang terjadi. Namun saya ingin menghapus URI web1 atau web2 ketika permintaan dikirim ke backend.
Ini haproxy.cfg saya
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
Jika saya pergi ke http://domain/web1
atau http://domain/web2
saya melihatnya di log kesalahan bahwa permintaan pada server di backend masing-masing bahwa requst adalah untuk sumber daya / web1 atau / web2 masing-masing. Karena itu saya percaya ada sesuatu yang salah dengan ekspresi reguler saya, meskipun saya menyalin dan menempelnya dari Dokumentasi. http://code.google.com/p/haproxy-docs/wiki/reqrep
Rangkuman: Saya mencoba merutekan lalu lintas berdasarkan URI, namun saya ingin HAProxy menghapus URI saat mengirim permintaan ke kumpulan backend.
Terima kasih!
-Jim