URL सब्सट्रिंग्स के आधार पर मैं हाइप्रोके मार्ग अनुरोध कैसे कर सकता हूं?


14

एक लोड बैलेंसर दो बैक एंड के साथ स्थापित किया गया है।

URI का अनुरोध निम्न प्रकार से होगा:

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

मैं इस तरह से हाइपरस्पी को कैसे कॉन्फ़िगर कर सकता हूं कि अनुरोध एक या दो बैक के दूसरे को भेजा जाता है, यह अनुरोध के प्रारूप पर निर्भर करता है URI? अनुरोधों के बीच एकमात्र अंतर /tag-02/अनुरोध URI में है।

स्पष्टीकरण के एक बिट के साथ इस के लिए एक haproxy config फाइल बहुत सराहना की जाएगी, क्योंकि मैं 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

HAProxy कॉन्फ़िगरेशन गाइड की धारा 7 में ACL पर विवरण है, लेकिन आपको use_backendACL के साथ क्या करना है, यह जानने के लिए गाइड के अनुभाग 4 में छिपे हुए जादू भस्म को जानना होगा ।


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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.