HAProxy के साथ लोड संतुलन के लिए URL मापदंडों का उपयोग करना


9

मेरे पास एक सिस्टम है जो एक कुकी के माध्यम से संतुलन को लोड करता है, लेकिन मैं एक विकल्प के रूप में एक URL पैरामीटर का उपयोग करना चाहता हूं। (विशेष रूप से, मेरे पास एक फ्रंट एंड ऐप है जो कुकीज़ का समर्थन नहीं करता है)। मेरा सेटअप थोड़ा जटिल है - मेरे पास एक मल्टीप्लेयर सिस्टम है और मैं इस कुकी के साथ एक स्टिक टेबल का उपयोग करता हूं ताकि यह सुनिश्चित हो सके कि एक ही गेम खेलने वाले विभिन्न लोग एक ही सर्वर पर जाएं। यह महान काम करता है, सिवाय इसके कि URL पैरामीटर कुछ भी नहीं करते हैं। यह सब haproxy 1.5dev17 के साथ है

मेरा प्रासंगिक बैकएंड है:

defaults
   log            global
   mode           http
   option         httplog
   option         dontlognull
   retries        3
   option         redispatch
   option         http-server-close

   maxconn        2000
   contimeout     5000
   clitimeout     50000
   srvtimeout     50000

backend simulate
    option httpchk OPTIONS /simulate/api/status
    stick-table type string len 40 size 5M expire 30m
    stick store-response set-cookie(SIMULATE_STICKY_SESSION) table simulate
    stick on cookie(SIMULATE_STICKY_SESSION) table simulate
    stick on url_param(SIMULATE_STICKY_SESSION) table simulate

    server app1 10.0.2.11:8080  cookie app1 check inter 10000
    server app2 10.0.3.11:8080  cookie app2 check inter 10000

ध्यान दें कि SIMULATE_STICKY_SESSION मेरे एप्लिकेशन (खिलाड़ी टीम पर आधारित) द्वारा उत्पन्न होता है।

जब मैं URL को कॉल करता हूं, तो मुझे एक jsessionid पास करना होगा (ताकि टॉमकैट को सही सत्र मिल जाए)। तो मैं कर रहा हूं

http://my.domain.com/myapp/url;SIMULATE_STICKY_SESSION=1918C909D3F30DB09C2F96B75C57D015.app1+jsessionid;jsessionid=1918C909D3F30DB09C2F96B75C57D015.app1

यह चिपचिपा सत्र पैरामीटर को गलत सर्वर पर जाने के 50% समय के लिए नहीं लगता है। मैं एक क्वेरी स्ट्रिंग (एक निशान के बाद) के रूप में परम का उपयोग करने की कोशिश की, लेकिन वह भी काम नहीं किया। मैं क्या गलत कर रहा हूं?

जवाबों:


3

यहाँ हाइपरक्सी मेलिंग सूची पर एक प्रतिक्रिया प्रदान की गई थी

अंश

बस अपने विन्यास में नीचे की लाइन को अपडेट करें:

 stick on url_param(SIMULATE_STICKY_SESSION,;) table simulate

डिफ़ॉल्ट रूप से, url_param प्रश्न चिह्न (?) के बाद एक पैरामीटर की खोज करता है। सेमी-कोलोन (;) से आपकी कुकी की तलाश करके ऊपर दिया गया कॉन्फ़िगरेशन इसे अधिलेखित कर देता है।

नोट: आप हाल ही में 1.5dev haproxy चला रहे होंगे, अधिमानतः dev 18।


जैसा कि उपयोगकर्ता सूची में उल्लेख किया गया है, इसका उत्तर लाइन को बदलने के लिए है: url_param (SIMULATE_STICKY_SESSION ;;) पर चिपकाएँ तालिका अनुकरण
विल ग्लास
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.