सबसे पहले, मैं आपको अपनी स्थिति समझाता हूँ। मैं एक साइड प्रोजेक्ट के रूप में एक काफी लोकप्रिय वेबसाइट चला रहा हूं, इसलिए मैं वास्तव में इसमें एक टन पैसा नहीं लगा सकता। मेरे पास वर्तमान में अपाचे के सामान्य अनुरोधों को भेजने के लिए HAProxy के साथ सिर्फ एक सर्वर है, और लाइटटैप्ड के लिए सभी स्थिर फ़ाइल अनुरोध हैं। यह वास्तव में अच्छी तरह से काम कर रहा है क्योंकि सभी php और पोस्ट अनुरोध Apache द्वारा संभाले जाते हैं, जबकि सभी छवियां तेजी से Lighttpd को भेजी जाती हैं (साइट ज्यादातर छवियां हैं, इसलिए यह वास्तव में महत्वपूर्ण है)। छवियों की सेवा के लिए एक उप-डोमेन स्थापित नहीं करना अच्छा होगा, क्योंकि लघु URL वास्तव में भी महत्वपूर्ण हैं, इस प्रकार HAProxy का उपयोग करने का मेरा कारण है।
मैंने एक होस्टिंग प्रदाता पाया है जो बहुत सस्ता अनमीटर्ड बैंडविड्थ प्रदान करता है जो मैं उपयोग कर रहा हूं, समस्या तब आती है जब मैं 100 बैंडविड्थ नेटवर्क कार्ड को संभाल सकता हूं जितना कि बैंडविड्थ को बाहर करना शुरू कर सकता है, इस प्रकार एक दूसरे सर्वर की आवश्यकता होती है।
मैंने अपने विकल्पों में बहुत सोचा है, इसलिए मैं हर एक को आपको समझाऊंगा। उम्मीद है कि आप कुछ जानकारी दे सकते हैं जिसमें से एक मेरे लिए सबसे अच्छा विकल्प है, या शायद वहाँ एक और विकल्प है जो मैंने अभी तक नहीं सोचा है।
आवश्यकताएँ:
यहां तक कि बैंडविड्थ वितरण भी जरूरी है। मेरे पास एक बहुत शक्तिशाली सर्वर है, इसलिए स्केलिंग एक विकल्प नहीं है। मुझे अधिक बैंडविड्थ हासिल करने के लिए स्केल करने की आवश्यकता है।
लघु यूआरएल। मैं वास्तव में अपनी छवियों की सेवा करने के लिए img.example.com की तरह उपडोमेन सेटअप करना नहीं चाहता। example.com/image.jpg यह अब कैसा है, और मैं वास्तव में कैसे रहना पसंद करूंगा। लेकिन अगर कोई और रास्ता नहीं है, तो मैं समझता हूं।
अनुरोध को संभालने वाला क्लॉस्टेस्ट सर्वर वास्तव में अच्छा होगा, लेकिन जरूरी नहीं। मन में कुछ रखने के लिए।
भारोत्तोलन में बाधा:
- यह वास्तव में करना आसान होगा क्योंकि मैं पहले से ही HAProxy का उपयोग कर रहा हूँ। हालांकि, मुझे लगता है कि बैंडविड्थ वितरित करते समय समस्या आती है। मैं इस पर गलत हो सकता है, लेकिन क्या HAProxy एक सर्वर को अनुरोध नहीं भेजता है जहां सर्वर इसे संसाधित करता है और फिर इसे HAProxy के माध्यम से क्लाइंट को वापस भेजता है? इस प्रकार, सभी ट्रैफ़िक लोड बैलेंसर के माध्यम से वापस चला जाता है, जिससे सभी सर्वरों के साथ अधिक से अधिक बैंडविड्थ का उपयोग होता है।
DNS राउंड रॉबिन:
- यह मेरा सबसे अच्छा विकल्प हो सकता है। बस कई सर्वरों पर वेबसाइट की प्रतिकृति बनाएं और वही करें जो मैं अभी कर रहा हूं। नकारात्मक पक्ष यह है कि यदि एक सर्वर नीचे जाता है, तो क्लाइंट को अभी भी भेजा जाता है। मुझे कई सर्वरों में साइट को दोहराने की आवश्यकता होगी। मैं इस तरह की उम्मीद कर रहा था कि मेरे पास एक मुख्य सर्वर हो सकता है जो स्थिर फ़ाइलों को छोड़कर सब कुछ संभालता है, और फिर एक जोड़ी स्थिर फ़ाइल सर्वर है। मैंने यह भी पढ़ा कि यह 'गरीब आदमी का लोड संतुलन' था, और यह अच्छा होगा कि कुछ अधिक परिष्कृत हो।
डायरेक्ट सर्वर रिटर्न:
- यह वास्तव में जटिल लगता है, लेकिन एक अच्छा विकल्प हो सकता है। क्या मैं अभी भी कुछ सर्वरों के लिए कुछ URL भेज पाऊंगा? HAProxy के साथ अभी की तरह, सही फ़ाइल एक्सटेंशन में समाप्त होने वाले प्रत्येक URL को लाइटटैप पर भेजा जाता है, जबकि अन्य एक्सटेंशनों को Apache पर भेजा जाता है। इसलिए मुझे कुछ इसी तरह की जरूरत होगी। जैसे, सभी php रिक्वेस्ट को उसी सर्वर द्वारा नियंत्रित किया जाता है जो बैलेंसिंग सॉफ़्टवेयर चला रहा हो, जबकि सभी jpg अनुरोध कई सर्वरों को भेजे जाते हैं।
आदर्श रूप से, यदि HAProxy ने डायरेक्ट सर्वर रिटर्न का समर्थन किया, तो मेरी समस्या हल हो जाएगी। मैं भी एक CDN का उपयोग नहीं करना चाहता, क्योंकि वे वास्तव में महंगे हैं, और यह सब के बाद सिर्फ एक साइड प्रोजेक्ट है।
क्या आप मेरी समस्या को समझते हैं? मुझे बताएं कि क्या मैंने कुछ सही नहीं समझाया या अगर आपको अधिक जानकारी की आवश्यकता है।