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?

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!


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.