मेरे पास ssl, स्थानीय सत्रों और लोड संतुलन के संबंध में प्रश्नों का एक समूह है, जो परस्पर जुड़े हुए प्रतीत होते हैं, इसलिए मैं इस प्रश्न की लंबाई के लिए अग्रिम में माफी माँगता हूँ।
मेरे पास एक वेबसाइट है जो फ़ाइल-आधारित सत्रों का उपयोग करती है। साइट की प्रकृति यह है कि इसमें से अधिकांश http है, लेकिन कुछ अनुभाग एसएसएल हैं। वर्तमान में, फ़ाइल आधारित सत्रों के कारण, किसी भी ssl अनुरोधों के लिए उसी सर्वर को हिट करने के लिए आवश्यक है जो पिछले HTTP अनुरोधों के समान है।
समय की कमी के कारण, मैं HTTP और एसएसएल ट्रैफ़िक को संतुलित करने के लिए सबसे आसान संभव काम करना चाहता हूं।
चिपचिपा भार संतुलन एल्गोरिदम के लिए 2 विकल्प प्रतीत होते हैं:
- आईपी आधारित
- कुकी आधारित
आईपी आधारित समाधान शायद काम करेगा, लेकिन हैशिंग एल्गोरिथ्म संभावित रूप से सर्वर को बदल देगा जब कोई उपयोगकर्ता सर्वर पर जाता है या जोड़ा जाता है जो वर्तमान फ़ाइल-आधारित सत्र सेटअप के साथ अवांछनीय है। मुझे यह भी लगता है कि किसी उपयोगकर्ता के लिए वेबसाइट ब्राउज़ करते समय ips को वैध रूप से बदलना संभव है।
कुकी आधारित एल्गोरिथ्म बेहतर लगता है, लेकिन एसएसएल द्वारा एन्क्रिप्ट किए जाने पर कुकी का निरीक्षण करने में असमर्थता अपनी समस्याओं को प्रस्तुत करती है।
मैं शेष ssl को लोड करने के तरीके के उदाहरणों के लिए गुगली कर रहा हूं, और मुझे सेटअप के कोई स्पष्ट उदाहरण नहीं मिल सकते हैं जो कुकी आधारित लोड संतुलन साध सकते हैं और जो एक और ssl डिकोडर जोड़कर बढ़े हुए ssl लोड से निपट सकते हैं।
मैंने जो स्पष्ट उदाहरण देखे हैं उनमें से अधिकांश में ssl डिकोडर (आमतौर पर हार्डवेयर, Apache_mod_ssl, या nginx) ब्राउज़र क्लाइंट और लोड बैलेंसर के बीच बैठा होता है। उदाहरणों में आमतौर पर ऐसा कुछ लगता है ( http://haproxy.1wt.eu/download/1.3/doc/ RGBecture.txt से संशोधित ):
192.168.1.1 192.168.1.11-192.168.1.14 ------- + ----------- + ----- + ----- + ----- + | | | | | + - + - + + - + - + - + - + - + - + - + - + - + + - + + + + + + + + + | LB1 | | ए | | B | | सी | | डी | + ----- + + --- + + --- + + --- + + --- + Apache 4 सस्ते वेब सर्वर mod_ssl haproxy
उपरोक्त उदाहरण में ssl डिकोडिंग भाग एक संभावित अड़चन है जो क्षैतिज रूप से स्केलेबल नहीं है।
मैंने haproxy को देखा है, और ऐसा लगता है कि एक 'मोड tcp' विकल्प है जो कुछ इस तरह की अनुमति देगा, जो आपको कई ssl decoders रखने की अनुमति देगा:
haproxy | ------------- | | ssl-decoder-1 ssl-decoder2 | | ------------------- | | | web1 web2 web3
हालाँकि, इस तरह के एक सेटअप में, ऐसा प्रतीत होता है कि आप क्लाइंट आईपी खो देंगे क्योंकि haproxy ssl को डिकोड नहीं कर रहा है: https://cloud-support.engineyard.com/discussions/problems/335-haproxy-not-passing-x-forwarded -के लिये
मैंने nginx को भी देखा है, और मुझे क्षैतिज रूप से स्केलेबल ssl-decoders का कोई स्पष्ट उदाहरण भी नहीं दिखता है। लोगों को संभावित अड़चन के रूप में nginx होने के कई उदाहरण प्रतीत होते हैं। और कम से कम इस लिंक से लगता है कि nginx के पास haproxy जैसी सेटअप का विकल्प भी नहीं है, जहाँ आप यह कहकर ip खो देंगे कि nginx "पारदर्शी रूप से एक backend को TCP कनेक्शन पास करने का समर्थन नहीं करता है" अपाचे कैसे पास करें एसएसएल ट्रैफिक गर्त नगीनक्स प्रॉक्सी? ।
प्रशन:
- बढ़ते ट्रैफ़िक से निपटने के लिए अधिक ssl डिकोडर्स को जोड़ने के सेटअप के अधिक उदाहरण क्यों नहीं प्रतीत होते हैं?
- क्या यह इसलिए है क्योंकि ssl डिकोडिंग कदम केवल एक सैद्धांतिक अड़चन है, और व्यावहारिक रूप से, एक डिकोडर अनिवार्य रूप से हास्यास्पद यातायात वाली साइटों को छोड़कर पर्याप्त होगा?
- एक और संभावित समाधान जो दिमाग में आता है, शायद कोई भी ऐसी बढ़ी हुई ssl जरूरतों के साथ एक केंद्रीकृत सत्र स्टोर भी है, इसलिए यह कोई फर्क नहीं पड़ता कि ग्राहक किस वेबवार्ता को अनुक्रमिक अनुरोधों पर हिट करता है। तब आप प्रत्येक वेबसर्वर पर mod_ssl या समकक्ष सक्षम कर सकते थे।
- ऊपर उल्लिखित हाइप्रोक्सी समाधान काम करने लगता है (क्लाइंट आईपी समस्या के अलावा), लेकिन क्या किसी के पास एक चिपचिपा कुकी आधारित सॉफ़्टवेयर लोड बैलेंसर समाधान है जो क्लाइंट आईपी रखते हुए डिकोडरों की संख्या में वृद्धि करके काम करेगा, या यह है कि तकनीकी रूप से नहीं है संभव है (क्योंकि आपको क्लाइंट आईपी प्राप्त करने के लिए अनुरोध को डीकोड करना होगा, जिस स्थिति में, हमारे पास एक डिकोडर अड़चन है)।
यह मानते हुए कि मैंने जो कुछ कहा है वह सच है, ये मेरे विकल्प प्रतीत होते हैं:
- IP हैशिंग का उपयोग करें (उन उपयोगकर्ताओं के लिए बुरा जो संभावित रूप से ips को बदल देते हैं, और सर्वर को जोड़ने और छोड़ने के परिदृश्य के लिए)
- nsx या mod_ssl को ssl अनुरोध को छूने वाले 1 प्रोग्राम के रूप में उपयोग करें, यह एक संभावित ssl डिकोडिंग टोंटी होगा
- ssl रिक्वेस्ट को छूने वाले, क्षैतिज ssl स्केलेबिलिटी को प्राप्त करने वाले 1 प्रोग्राम के रूप में haproxy का उपयोग करें, लेकिन ssl रिक्वेस्ट के लिए वेबसर्वर स्तर पर लॉग किए गए ips के साथ नहीं रहते (शायद अस्थायी रूप से ठीक है)
- लंबे समय तक, एक मोबाइल या केंद्रीकृत सत्र स्टोर की ओर बढ़ना, जिससे चिपचिपा सत्र अनावश्यक हो जाता है