ฉันจะสร้างคำขอเส้นทาง haproxy ตามสตริงย่อย URL ได้อย่างไร


14

ตัวโหลดบาลานซ์ถูกตั้งค่าโดยมีปลายด้านหลังสองด้าน

URI คำขอจะมีลักษณะดังนี้:

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

ฉันจะกำหนดค่า haproxy ในลักษณะที่คำขอถูกส่งไปยังหนึ่งหรืออีกสองหลังสิ้นสุดขึ้นอยู่กับรูปแบบของคำขอ URI? ข้อแตกต่างระหว่างคำขออยู่/tag-02/ในคำขอ URI เท่านั้น

ไฟล์การกำหนดค่า haproxy สำหรับสิ่งนี้พร้อมคำอธิบายเล็กน้อยจะได้รับการชื่นชมมากเนื่องจากฉันยังใหม่กับ haproxy

คำตอบ:


13

คุณต้องการใช้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

ส่วนที่ 7 ของคู่มือการตั้งค่า HAProxyมีรายละเอียดเกี่ยวกับ ACLs แต่คุณต้องรู้use_backendคาถาเวทมนต์ที่ซ่อนอยู่ในส่วนที่ 4 ของคู่มือเพื่อทราบว่าต้องทำอะไรกับ ACL


1
ในขณะที่รูปแบบของ ACL ประกาศโดยทั่วไปมากขึ้นสามารถอ่านได้และนำมาใช้ใหม่, คุณสามารถถ้าคุณต้องการรวมถึงการประกาศ ACL ในคำสั่งของตัวเองด้วยuse_backend use_backend be2 if { path_beg /tag-02 }
womble

0

เพื่อให้เป็นตัวอย่างที่ดีขึ้นสำหรับคำตอบข้างต้นด้านล่างเป็นตัวอย่างการกำหนดค่า

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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.