HAProxy - URI tabanlı farklı bir web sunucusuna yönlendirme


14

Aşağıdaki yapılandırmaya sahip bir HTTP grubum var:

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

Belirli bir URI (yani / özel) için tüm istekleri 3. web sunucusuna iletmek için bazı seçenek eklemek istiyorum. Bunu nasıl yapmalıyım?

Yanıtlar:


23

İşte ana bilgisayar başlıklarına göre yük dengeleme üzerine yazdığım bir blog yazısı:

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

Bir URI veya dizine karşı eşleştirmek isterseniz, o sayfada sağlanan örnekte kullanılan hdr_end yerine path_beg kullanmanızı öneririm. Aşağıda bunu yapılandırmanızla nasıl yapabileceğinize ilişkin bir örnek verilmiştir:

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

Umarım yardımcı olur!


Hey, cevabını sadece şimdi gördüm. Aslında aynı çözümü kullanarak zaten çözdüm. Cevabınız için teşekkürler!
Saggi Malachi

Bu bağlantı artık canlı değil. Ancak, burada hala görüntülenebilir: web.archive.org/web/20160404161136/http://www.techrawr.com/2009/…
jaggedsoft

1
@NextLocal Teşekkürler - Bağlantıyı güncelledim. Önceki alan adının süresinin dolmasına izin verdim, ancak yukarıdaki güncellenmiş bağlantı için bir takma addı.
Matt Beckman
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.