HAProxy - meneruskan ke server web yang berbeda berdasarkan URI

14

Saya memiliki ladang HTTP dengan konfigurasi berikut:

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

Saya ingin menambahkan beberapa opsi yang akan meneruskan semua permintaan untuk URI tertentu (yaitu / khusus) ke server web ke-3. Bagaimana saya harus melakukannya?

Saggi Maleakhi
sumber

Jawaban:

23

Berikut adalah posting blog yang saya tulis pada load balancing berdasarkan header host:

http://www.mattbeckman.com/2009/09/18/using-the-acl-in-haproxy-for-load-balancing-named-virtual-hosts/

Jika Anda ingin mencocokkan dengan URI atau direktori, saya sarankan menggunakan path_beg alih-alih hdr_end yang digunakan dalam contoh yang disediakan pada halaman itu. Di bawah ini adalah contoh bagaimana Anda dapat melakukan ini dengan konfigurasi Anda:

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

Semoga itu bisa membantu!

Matt Beckman
sumber
Hei, lihat jawabanmu sekarang. Saya sebenarnya sudah menyelesaikannya menggunakan solusi yang sama. Terima kasih atas jawaban anda!
Saggi Malachi
Tautan ini tidak lagi hidup. Namun, masih dapat dilihat di sini: web.archive.org/web/20160404161136/http://www.techrawr.com/2009/…
jaggedsoft
1
@NextLocal Terima kasih - Saya memperbarui tautannya. Saya membiarkan domain sebelumnya kedaluwarsa, tetapi itu adalah alias untuk tautan yang diperbarui di atas.
Matt Beckman