Làm cách nào tôi có thể thực hiện các yêu cầu tuyến haproxy dựa trên các chuỗi URL?


13

Một bộ cân bằng tải được thiết lập với hai đầu sau.

URI yêu cầu sẽ trông như sau:

http://example.com/answers/submit
http://example.com/tag-02/answers/submit

Làm cách nào tôi có thể định cấu hình haproxy theo cách mà yêu cầu được gửi đến một hoặc hai đầu cuối, tùy thuộc vào định dạng của URI yêu cầu? Sự khác biệt duy nhất giữa các yêu cầu là /tag-02/trong URI yêu cầu.

Một tập tin cấu hình haproxy cho điều này với một chút giải thích sẽ được đánh giá cao, vì tôi mới sử dụng haproxy.

Câu trả lời:


13

Bạn muốn sử dụng ACL :

backend be1 # this is your default backend
  ...
backend be2 # this is for /tag-02 requests
  ...

frontend fe
  ...
  default_backend be1
  acl url_tag02 path_beg /tag-02
  use_backend be2 if url_tag02

Phần 7 của hướng dẫn cấu hình HAProxy có các chi tiết về ACL, nhưng bạn phải biết use_backendcâu thần chú ẩn trong phần 4 của hướng dẫn để biết phải làm gì với ACL.


1
Mặc dù kiểu ACL được khai báo thường dễ đọc và có thể sử dụng lại hơn, nhưng bạn có thể, nếu bạn muốn, bao gồm khai báo ACL trong use_backendchính lệnh, với use_backend be2 if { path_beg /tag-02 }.
womble

0

Để cung cấp một ví dụ tốt hơn cho câu trả lời ở trên, bên dưới là một ví dụ cấu hình.

frontend https-in
   bind *:443 ssl crt /etc/ssl/server.pem
   mode http
   redirect scheme https if !{ ssl_fc }

   acl uri_help path_beg /help
   use_backend help if uri_help

backend help
    balance     roundrobin
    server      help yourbackendserver.com check
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.