आदेश: 1. nginx 2. वार्निश 3. haproxy 4. वेबसर्वर?


50

मैंने देखा है कि लोग इन सभी को एक प्रवाह में संयोजित करने की सलाह देते हैं, लेकिन लगता है कि उनमें बहुत सारी अतिव्यापी विशेषताएं हैं, इसलिए मैं आपके वास्तविक वेब सर्वर को हिट करने से पहले 3 अलग-अलग कार्यक्रमों से गुजरना चाहता हूं।

nginx:

  • ssl: हाँ
  • सेक: हाँ
  • कैश: हाँ
  • बैकेंड पूल: हाँ

वार्निश:

  • ssl: नहीं (stunnel?)
  • संकुचित करें: ?
  • कैश: हाँ (प्राथमिक सुविधा)
  • बैकेंड पूल: हाँ

haproxy:

  • एसएसएल: नहीं (स्टनेल)
  • संकुचित करें: ?
  • कैश: नहीं
  • बैकेंड पूल: हाँ (प्राथमिक सुविधा)

क्या इन सभी को अपने मुख्य वेब सर्वर के सामने रखने की मंशा सिर्फ अपनी प्राथमिक सुविधा का लाभ पाने की है?

ऐसा लगता है कि बहुत सारे डेमॉन स्ट्रीम एक साथ समान चीजें कर रहे हैं।

आपकी तैनाती और वरीयता क्रम क्या है और क्यों?


1
वार्निश के पास अब SSL समर्थन है: blog.exceliance.fr/2012/09/10/…
MiniQuark

4
आप HAProxy कहने का उल्लेख करते हैं?
लुइस लोबो बोरोबिया

Nginx के पास सब कुछ है, इसलिए मैं सिर्फ nginx का उपयोग करना चाहूंगा।
Seun Osewa

जवाबों:


60

सीधे शब्दों में कहें..

HaProxy बाजार पर सबसे अच्छा ओपनसोर्स लोडबेलर है।
वार्निश बाजार पर सबसे अच्छा ओपनसोर्स स्टेटिक फाइल कैचर है।
Nginx बाजार पर सबसे अच्छा ओपनसोर्स वेबसर्वर है।

(बेशक यह मेरी और कई अन्य लोगों की राय है)

लेकिन आम तौर पर, सभी प्रश्न पूरे स्टैक से नहीं जाते हैं।

सब कुछ haproxy और nginx / एकाधिक nginx के माध्यम से जाता है।
एकमात्र अंतर आप स्थिर अनुरोधों के लिए वार्निश पर "बोल्ट" है।

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

कुल मिलाकर, यह मॉडल एक स्केलेबल और बढ़ते आर्किटेक्चर को फिट करता है (यदि आपके पास एक से अधिक सर्वर नहीं हैं तो हाइप्रोक्सी लें)

आशा है कि यह मदद करता है: डी

ध्यान दें: मैं वास्तव में SSL प्रश्नों के लिए पाउंड भी पेश करूंगा: D
आपके पास SSL अनुरोधों को डिक्रिप्ट करने के लिए समर्पित सर्वर हो सकता है, और बैकेंड स्टैक के लिए मानक अनुरोध पास कर सकता है: D (यह पूरे स्टैक को तेज और सरल बनाता है)


1
बहुत दिलचस्प है, खासकर डिक्रिप्शन सर्वर के बारे में। +1
गेरी

बहुत बढ़िया जवाब। मैं सोच रहा हूं कि हर चीज के सामने क्या बैठता है? क्या यह HAProxy या Nginx है?
जॉन

2
@ जॉन: [क्लाइंट -> हैप्रोसी -> वार्निश -> नेग्नेक्स -> स्टेटिक कंटेंट] या [क्लाइंट -> हैप्रोसी -> नेग्नेक्स (वैकल्पिक) -> एप्लीकेशन सर्वर (डायनामिक कंटेंट)]
मिनीक्वेअर १६'१३

2
आप स्थिर होकर कैश क्यों देंगे और डायनेमिक की सेवा करेंगे। स्टैग्नेंट फाइल्स को परोसने के लिए नग्नेक्स काफी तेज़ है। मैं स्टैटिक के लिए [ HAProxy-> Nginx] जैसे स्टैक का उपयोग करना पसंद करता हूं और डायनेमिक पर कैश को लागू करने के लिए [ HAProxy-> Nginx-> Varnish-> Apache]। एसएसएल को लोड बैलेंसर पर समाप्त करने के रूप में आपने समर्पित समाप्ति नोड्स के साथ कहा।
स्टीव बुज़ोनास

33

प्रस्तावना

2016 में अपडेट करें। चीजें विकसित हो रही हैं, सभी सर्वर बेहतर हो रहे हैं, वे सभी एसएसएल का समर्थन करते हैं और वेब पहले से कहीं अधिक अद्भुत है।

जब तक कहा नहीं गया है, निम्न व्यवसाय और स्टार्ट-अप में पेशेवरों की ओर लक्षित है, हजारों से लाखों उपयोगकर्ताओं का समर्थन करता है।

इन उपकरणों और आर्किटेक्चर के उपयोगकर्ताओं / हार्डवेयर / पैसा एक बहुत आवश्यकता होती है। आप इसे घर की प्रयोगशाला में या ब्लॉग चलाने के लिए आज़मा सकते हैं, लेकिन इसका कोई मतलब नहीं है।

एक सामान्य नियम के रूप में, याद रखें कि आप इसे सरल रखना चाहते हैं । बनाए रखने के लिए प्रत्येक मिडलवेयर एप्लाइड मिडलवेयर का एक और महत्वपूर्ण टुकड़ा है। पूर्णता तब प्राप्त नहीं होती है जब जोड़ने के लिए कुछ भी नहीं होता है लेकिन जब हटाने के लिए कुछ नहीं होता है।

कुछ सामान्य और दिलचस्प बातें

HAProxy (संतुलन) + nginx (php अनुप्रयोग + कैशिंग)

वेबसर्वर nginx php रनिंग है। जब nginx पहले से ही है तो यह कैशिंग और पुनर्निर्देशन को भी संभाल सकता है।

HAProxy ---> nginx-php
A       ---> nginx-php
P       ---> nginx-php
r       ---> nginx-php
o       ---> nginx-php
x       ---> nginx-php
y       ---> nginx-php

HAProxy (संतुलन) + वार्निश (कैशिंग) + टोमैट (जावा एप्लिकेशन)

URI (* .jpg * .css * .js) के आधार पर HAProxy वार्निश को पुनर्निर्देशित कर सकता है।

HAProxy ---> tomcat
A       ---> tomcat
        ---> tomcat
P       ---> tomcat <----+
r       ---> tomcat <---+|
o                       ||
x       ---> varnish <--+|
y       ---> varnish <---+

HAProxy (संतुलन) + nginx (मेजबान और कैशिंग के लिए एसएसएल) + वेबसर्वर (आवेदन)

वेबसर्वर SSL नहीं बोलते हैं भले ही हर कोई SPE SSL ( विशेषकर यह HAProxy-WebServer लिंक निजी उपयोगकर्ता जानकारी EC2 से गुजर रहा हो )। स्थानीय nginx को जोड़ने से SSL को होस्ट तक लाने की अनुमति मिलती है। एक बार nginx होने के बाद यह कुछ कैशिंग और URL पुनर्लेखन भी कर सकता है।

नोट : पोर्ट पुनर्निर्देशन 443: 8080 हो रहा है लेकिन सुविधाओं का हिस्सा नहीं है। पोर्ट पुनर्निर्देशन करने का कोई मतलब नहीं है। लोड बैलेंसर सीधे वेबसर्वर से बात कर सकता है: 8080।

          (nginx + webserver on same host)
HAProxy ---> nginx:443 -> webserver:8080
A       ---> nginx:443 -> webserver:8080
P       ---> nginx:443 -> webserver:8080
r       ---> nginx:443 -> webserver:8080
o       ---> nginx:443 -> webserver:8080
x       ---> nginx:443 -> webserver:8080
y       ---> nginx:443 -> webserver:8080

middleware

HAProxy: लोड बैलेंसर

मुख्य विशेषताएं :

  • लोड संतुलन (टीसीपी, HTTP, HTTPS)
  • एकाधिक एल्गोरिदम (राउंड रॉबिन, स्रोत आईपी, हेडर)
  • सत्र की दृढ़ता
  • एसएसएल समाप्ति

इसी तरह के विकल्प : nginx (बहु-उद्देश्य वेब-सर्वर एक लोड बैलेंसर के रूप में विन्यास योग्य)
विभिन्न विकल्प : क्लाउड (अमेज़ॅन ईएलबी, Google लोड बैलेंसर), हार्डवेयर (F5, Fortinet, Citrix netscaler), अन्य और वर्ल्डवाइड (DNS, anycast, CloudFlare)

HAProxy क्या करता है और आप इसका उपयोग कब करते हैं?
जब भी आपको भार संतुलन की आवश्यकता हो। HAProxy समाधान के लिए जाना है।

सिवाय जब आप बहुत सस्ते या जल्दी और गंदे चाहते हैं या आपके पास कौशल उपलब्ध नहीं है, तो आप एक ELB: D का उपयोग कर सकते हैं

सिवाय इसके कि जब आप बैंकिंग / सरकार / समान हैं, तो आपको अपने स्वयं के डेटासेंटर का उपयोग कठिन आवश्यकताओं (समर्पित अवसंरचना, भरोसेमंद फेलओवर, फ़ायरवॉल की 2 परतों, सामान की ऑडिटिंग, SLA डाउनटाइम प्रति मिनट x%, सभी में करने के लिए) के साथ करने की आवश्यकता है। आप अपने 30 एप्लिकेशन सर्वर वाले रैक के ऊपर 2 F5 लगा सकते हैं।

सिवाय इसके कि जब आप 100k HTTP (S) [और मल्टी-साइट्स] पर जाना चाहते हैं, तो आपके पास HAProxy की मल्टीप्लेयर [Global] लोड बैलेंसिंग की एक परत (क्लाउडफ्लेयर, DNS, एनीकास्ट) है। सैद्धांतिक रूप से, वैश्विक बैलेन्सर सीधे वेबर्स से बात कर सकता है जिसने HAProxy को खोदने की अनुमति दी थी। आमतौर पर, आप अपने डीटासेंटर को HAProxy (ओं) को सार्वजनिक प्रवेश बिंदु (ओं) के रूप में रखते हैं और मेजबानों में काफी संतुलन और विचरण को कम करने के लिए उन्नत विकल्पों को ट्यून करते हैं।

पर्सनल ओपिनियन : एक छोटा, सम्‍मिलित, ओपन सोर्स प्रोजेक्‍ट, जो पूरी तरह वन ट्रू प्‍यूरोस को समर्पित है। सबसे आसान कॉन्फ़िगरेशन (एक फ़ाइल) के बीच, मेरे जीवन में सबसे उपयोगी और सबसे विश्वसनीय ओपन सोर्स सॉफ़्टवेयर है।

Nginx: Apache कि चूसना नहीं है

मुख्य विशेषताएं :

  • WebServer HTTP या HTTPS
  • CGI / PHP / कुछ अन्य में एप्लिकेशन चलाएँ
  • URL पुनर्निर्देशन / पुनर्लेखन
  • पहुँच नियंत्रण
  • HTTP हेडर हेरफेर
  • कैशिंग
  • रिवर्स प्रॉक्सी

इसी तरह के विकल्प : अपाचे, लाइटटैप, टॉमकैट, गुनिकॉर्न ...

अपाचे डी-फैक्टो वेब सर्वर था, जिसे दर्जनों मॉड्यूल्स के विशाल क्लस्टर के रूप में भी जाना जाता है और httpd.confटूटी हुई रिक्वेस्ट आर्किटेक्चर के शीर्ष पर हजारों लाइनें हैं । कम मॉड्यूल, (थोड़ा) सरल विन्यास और एक बेहतर कोर आर्किटेक्चर के साथ, सभी को nginx फिर से करें।

Nginx क्या करता है और आप इसका उपयोग कब करते हैं?
एक वेबसर्वर अनुप्रयोगों को चलाने का इरादा है। जब आपका एप्लिकेशन nginx पर चलने के लिए विकसित किया जाता है, तो आपके पास पहले से ही nginx होता है और आप इसकी सभी विशेषताओं का उपयोग कर सकते हैं।

सिवाय जब आपके आवेदन के नगीनेक्स पर चलने का इरादा नहीं है और नगीनक्स आपके स्टैक में पाया जाना कहीं नहीं है (तो जावा की दुकान किसी को भी?) तो नगनेक्स में कोई मतलब नहीं है। आपके वर्तमान वेबसर्वर में वेबसर्वर की विशेषताएं मौजूद हैं और अन्य कार्य उपयुक्त समर्पित टूल (HAProxy / Varnish / CDN) द्वारा बेहतर तरीके से संचालित किए जाते हैं।

सिवाय इसके कि जब आपके वेबसर्वर / एप्लिकेशन में सुविधाओं का अभाव है, कॉन्फ़िगर करना मुश्किल है और / या आप इसे देखने के बजाय नौकरी छोड़ देंगे (किसी को भी गुनगुनाएं?), तो आप URL करने के लिए सामने (यानी स्थानीय रूप से प्रत्येक नोड पर) एक nginx डाल सकते हैं। पुनर्लेखन, 301 पुनर्निर्देशन भेजें, अभिगम नियंत्रण लागू करें, एसएसएल एन्क्रिप्शन प्रदान करें और HTTP हेडर को मक्खी पर संपादित करें। [ये एक वेबसर्वर से अपेक्षित विशेषताएं हैं]

वार्निश: कैशिंग सर्वर

मुख्य विशेषताएं :

  • कैशिंग
  • उन्नत कैशिंग
  • फाइन ग्रेन्सिंग कैशिंग
  • कैशिंग

इसी तरह के विकल्प : nginx (एक कैशिंग सर्वर के रूप में बहुउद्देश्यीय वेब-सर्वर विन्यास योग्य)
अलग-अलग विकल्प : CDN (अकामाई, अमेज़ॅन क्लाउडफ्रंट, क्लाउडफ्लारे), हार्डवेयर (F5, Fortinet, Citrix Detscaler)

वार्निश क्या करता है और आप इसका उपयोग कब करते हैं?
यह कैशिंग करता है, केवल कैशिंग। यह आमतौर पर प्रयास के लायक नहीं है और यह समय की बर्बादी है। इसके बजाय CDN का प्रयास करें। ध्यान रखें कि कैशिंग एक आखिरी चीज है जिसे आपको वेबसाइट चलाते समय ध्यान रखना चाहिए।

सिवाय जब आप चित्रों या वीडियो के बारे में विशेष रूप से एक वेबसाइट चला रहे हैं तो आपको सीडीएन को अच्छी तरह से देखना चाहिए और गंभीरता से कैशिंग के बारे में सोचना चाहिए।

सिवाय इसके कि जब आप अपने खुद के हार्डवेयर को अपने स्वयं के डेटासेंटर (CDN एक विकल्प नहीं है) का उपयोग करने के लिए मजबूर होते हैं और आपके webservers स्थिर फ़ाइलों को वितरित करने में अधिक भयानक होते हैं (और अधिक webservers मदद नहीं कर रहा है) तो वार्निश अंतिम उपाय है।

सिवाय जब आपके पास ज्यादातर स्थिर-स्थिर-जटिल-गतिशील-उत्पन्न-सामग्री वाली सामग्री है (निम्न पैराग्राफ देखें) तो वार्निश आपके webservers पर बहुत सारी प्रसंस्करण शक्ति बचा सकता है।

स्टैटिक कैशिंग 2016 में खत्म हो गई है

कैशिंग लगभग विन्यास मुक्त, धन मुक्त और समय मुक्त है। बस CloudFlare, या CloudFront या Akamai या MaxCDN की सदस्यता लें। इस लाइन को लिखने में मुझे जो समय लगता है वह यह है कि कैशिंग को सेटअप करने में लगने वाला समय और बीयर को अपने हाथ में पकड़े मैं मंझला CloudFlare सदस्यता से अधिक महंगा है।

ये सभी सेवाएँ स्थिर * .css * .js * .png और अधिक के लिए बॉक्स से बाहर काम करती हैं। वास्तव में, वे ज्यादातर Cache-ControlHTTP हेडर में निर्देश का सम्मान करते हैं । कैशिंग का पहला चरण उचित कैश निर्देश भेजने के लिए अपने webservers को कॉन्फ़िगर करना है। इससे कोई फर्क नहीं पड़ता कि सीडीएन, क्या वार्निश, क्या ब्राउज़र बीच में है।

प्रदर्शन के विचार

वार्निश उस समय बनाया गया था जब औसत वेब सर्वर एक ब्लॉग पर एक बिल्ली की तस्वीर परोसने के लिए घुट रहे थे। आजकल औसत आधुनिक मल्टी-थ्रेडेड अतुल्यकालिक बुलबॉर्ड-चालित वेबसर्वर का एक एकल उदाहरण मज़बूती से पूरे देश में बिल्ली के बच्चे को वितरित कर सकता है। के सौजन्य sendfile()

मैंने जिस अंतिम प्रोजेक्ट पर काम किया, उसके लिए मैंने कुछ त्वरित प्रदर्शन परीक्षण किए। एक एकल टोमैट इंस्टेंसेस एचटीटीपी पर प्रति सेकंड 21 000 से 33 000 स्टैटिक फ़ाइलों की सेवा कर सकता है (20B से 12kB के लिए अलग-अलग HTTP / क्लाइंट कनेक्शन गिनती के साथ परीक्षण फ़ाइलें)। निरंतर आउटबाउंड यातायात 2.4 Gb / s से परे है। उत्पादन में केवल 1 Gb / s इंटरफेस होगा। हार्डवेयर से बेहतर नहीं कर सकते, वार्निश की कोशिश में भी कोई मतलब नहीं है।

कैशिंग कॉम्प्लेक्स बदलते गतिशील सामग्री

सीडीएन और कैशिंग सर्वर आमतौर पर मापदंडों के साथ URL को अनदेखा करते हैं ?article=1843, जैसे वे सत्र कुकीज़ या प्रमाणित उपयोगकर्ताओं के साथ किसी भी अनुरोध को अनदेखा करते हैं, और वे अधिकांश MIME प्रकारों को अनदेखा करते हैं जिनमें application/jsonसे शामिल हैं /api/article/1843/info। उपलब्ध कॉन्फ़िगरेशन विकल्प हैं, लेकिन आमतौर पर ठीक नहीं है, बल्कि "सभी या कुछ भी नहीं"।

वार्निश में कस्टम जटिल नियम हो सकते हैं (वीसीएल देखें) यह परिभाषित करने के लिए कि क्या कछुआ है और क्या नहीं है। ये नियम URI, हेडर और वर्तमान उपयोगकर्ता सत्र कुकी और MIME प्रकार और सभी TOGETHER सामग्री द्वारा विशिष्ट सामग्री को कैश कर सकते हैं। यह बहुत विशिष्ट लोड पैटर्न के लिए वेबसर्वरों पर बहुत सारी प्रसंस्करण शक्ति बचा सकता है। जब वार्निश काम में है और भयानक है।

निष्कर्ष

मुझे इन सभी टुकड़ों को समझने में थोड़ा समय लगा, जब इनका उपयोग करना था और कैसे वे एक साथ फिट हुए। आशा है इससे आपको सहायता मिलेगी।

यह काफी लंबा हो गया (लिखने के लिए 6 घंटे। OMG !: O)। हो सकता है कि मुझे उस बारे में एक ब्लॉग या एक किताब शुरू करनी चाहिए। मजेदार तथ्य: उत्तर की लंबाई पर कोई सीमा नहीं लगती है।


5
उत्तर की लंबाई की सीमा है, लेकिन आपको इस तक पहुंचने के लिए कुछ और किताबें लिखनी होंगी।
माइकल हैम्पटन

2
कैशिंग के संबंध में एक बिंदु ध्यान देने योग्य है: किसी साइट के प्रदर्शन में सुधार करने का एक शक्तिशाली तरीका जब आपके पास एप्लिकेशन का नियंत्रण नहीं है; विशेष रूप से अगर आवेदन वास्तव में बेवकूफ कैश हेडर है (उद्यम किसी को भी?)। हालांकि आपको प्रमाणीकृत संसाधनों के बारे में अधिक जागरूक होना होगा।
कैमरन केर

@ user5994461 मुझे आपका ब्लॉग पढ़ना अच्छा लगेगा। अद्भुत जवाब!
ऑक्सालॉर्ग

20

यह सच है कि 3 उपकरण आम सुविधाओं को साझा करते हैं। अधिकांश सेटअप 3 में से 2 के किसी भी संयोजन के साथ ठीक हैं। यह निर्भर करता है कि उनका मुख्य उद्देश्य क्या है। यदि आप जानते हैं कि आपका एप्लिकेशन सर्वर स्टैटिक्स (जैसे: nginx) पर तेज़ है, तो कुछ कैशिंग का त्याग करना आम है। यदि आप दसियों या सैकड़ों सर्वरों को स्थापित करने जा रहे हैं तो कुछ लोड बैलेंसिंग सुविधाओं का त्याग करना आम बात है और इन सबसे बाहर निकलने और न ही समस्याओं के निवारण के बारे में परवाह न करें। यदि आप हर जगह कई घटकों के साथ एक वितरित एप्लिकेशन को चलाने का इरादा रखते हैं, तो कुछ वेब सर्वर सुविधाओं का बलिदान करना आम है। फिर भी, कुछ लोग उन सभी के साथ दिलचस्प खेतों का निर्माण करते हैं।

आपको यह ध्यान रखना चाहिए कि आप 3 ठोस उत्पादों के बारे में बात कर रहे हैं। आम तौर पर आपको उन्हें संतुलित करने की आवश्यकता नहीं होगी। यदि आपको फ्रंट एसएसएल की आवश्यकता है, तो रिवर्स-प्रॉक्सी के रूप में पहले नग्नेक्स ठीक है। यदि आपको इसकी आवश्यकता नहीं है, तो सामने की तरफ वार्निश ठीक है। तब आप अपने ऐप्स को बैलेंस करने के लिए haproxy लगा सकते हैं। कभी-कभी, आप फ़ाइल प्रकारों या रास्तों के आधार पर, स्वयं हाइप्रोक्स पर अलग-अलग सर्वर फ़ार्म पर स्विच करना भी चाहेंगे।

कभी-कभी आपको भारी DDoS हमलों से बचाव करना होगा, और सामने वाला हाइप्रोक्स अन्य लोगों की तुलना में अधिक अनुकूल होगा।

सामान्य तौर पर, आपको इस बात की चिंता नहीं करनी चाहिए कि आपकी पसंद के बीच क्या समझौता करना है। आपको यह चुनना चाहिए कि अपनी आवश्यकताओं के लिए सबसे अच्छा लचीलापन प्राप्त करने के लिए और आने के लिए उन्हें कैसे इकट्ठा किया जाए। यहां तक ​​कि अगर आप उनमें से कई बार ढेर करते हैं तो यह कभी-कभी आपकी आवश्यकताओं के आधार पर सही हो सकता है।

यह मदद करता है उम्मीद!


1
HAProxy के लिए +1 - लेखक सर्वर फॉल्ट के सवालों का जवाब देता है। धन्यवाद।
जोएल के

Arenstar: क्या आपने इनमें से एक टूल लिखा है? विली तारापू, HAProxy के सिद्धांत डेवलपर हैं।
जोएल के

इस विली के लिए धन्यवाद। आपने ऊपर Arenstar को मेरे प्रश्न का उत्तर दिया।
जॉन

2
ध्यान दें कि HAProxy के लिए वर्तमान विकास कोड में अब SSL शामिल है।
जोएल के

14

अन्य सभी उत्तर 2010 से पहले के हैं, इसलिए एक अद्यतन तुलना को जोड़ना।

nginx

  • एक पूर्ण वेब सर्वर, अन्य सुविधाओं का भी उपयोग किया जा सकता है। जैसे: HTTP कम्प्रेशन
  • एसएसएल सपोर्ट
  • Nginx के रूप में बहुत हल्के वजन को शुरू से हल्का होने के लिए डिज़ाइन किया गया था।
  • वार्निश कैशिंग प्रदर्शन के पास
  • HAProxy लोड संतुलन प्रदर्शन के करीब

वार्निश

  • जटिल कैशिंग परिदृश्यों और अनुप्रयोगों के साथ शामिल करने के लिए सबसे अच्छा है।
  • सबसे अच्छा स्थिर फ़ाइल कैचर
  • कोई एसएसएल सपोर्ट नहीं
  • मेमोरी और सीपीयू खाने वाला

haproxy

  • सबसे अच्छा लोडबॉलर, किनारे लोड संतुलन सुविधाओं को काटने के लिए, हार्डवेयर लोडबॉलर के लिए तुलनीय है
  • SSL 1.5.0 के बाद से समर्थित है
  • सरल, http कार्यान्वयन के बिना सिर्फ एक tcp प्रॉक्सी होना, जो इसे तेज और कम बग प्रवण बनाता है।

तो सबसे अच्छी विधि उन सभी को एक उपयुक्त क्रम में लागू करती प्रतीत होती है।

हालाँकि, सामान्य प्रयोजन के लिए, Nginx सबसे अच्छा है क्योंकि आप सभी के लिए औसत-औसत प्रदर्शन प्राप्त करते हैं: कैशिंग, रिवर्स प्रॉक्सिंग, लोड संतुलन , संसाधन उपयोग पर बहुत कम ओवरहेड के साथ। और फिर आपके पास एसएसएल और पूर्ण वेब सर्वर विशेषताएं हैं।


6

वार्निश में लोड संतुलन के लिए समर्थन है: http://www.varnish-cache.org/trac/wiki/LoadBalancing

Nginx में लोड संतुलन के लिए समर्थन है: http://wiki.nginx.org/NginxHttpUpstreamModule

मैं बस वार्निश + स्टनेल के साथ इसे कॉन्फ़िगर करूंगा। अगर मुझे किसी और कारण से नग्नेक्स की आवश्यकता होती है, तो मैं बस नग्नेक्स + वार्निश का उपयोग करूंगा। आप nginx को SSL कनेक्शन स्वीकार कर सकते हैं और उन्हें वार्निश कर सकते हैं, फिर http के माध्यम से nginx से वार्निश की बात कर सकते हैं।

कुछ लोग nginx (या अपाचे) को मिश्रण में फेंक सकते हैं क्योंकि ये वार्निश की तुलना में कुछ अधिक सामान्य प्रयोजन के उपकरण हैं। उदाहरण के लिए, यदि आप छद्म स्तर पर सामग्री को बदलना चाहते हैं (उदाहरण के लिए, XDV, Apache फ़िल्टर आदि का उपयोग करके), तो आपको इनमें से किसी एक की आवश्यकता होगी, क्योंकि वार्निश स्वयं ऐसा नहीं कर सकता है। कुछ लोग इन उपकरणों के विन्यास से अधिक परिचित हो सकते हैं, इसलिए वार्निश को एक साधारण कैश के रूप में उपयोग करना आसान होता है और लोड को दूसरी परत पर करना आसान होता है क्योंकि वे पहले से ही अपाचे / nginx / haproxy से लोड बैलेंसर के रूप में परिचित हैं।


राइट - "बैकएंड पूल" को इंगित करना था कि इन तीनों में लोड संतुलन की विशेषताएं हैं। मेरी प्रारंभिक जांच से ऐसा लगता है कि HAProxy में सबसे अधिक ट्यून करने योग्य लोड संतुलन विकल्प हैं।
जोएल के

यह उचित लगता है, क्योंकि यह एक लोड संतुलन उपकरण के रूप में उद्देश्य से बनाया गया है। दूसरी ओर, वार्निश की लोड बैलेंसिंग विशेषताएं बहुत अच्छी हैं, और इस मिश्रण से एक प्रक्रिया को हटाने से आपकी विलंबता के साथ एक सरल कॉन्फ़िगरेशन प्राप्त होता है।
लार्क्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.