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


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

nginx:

  • एसएसएल: हाँ
  • संपीड़ित: हाँ
  • कैश: हाँ
  • बैकएंड पूल: हाँ

वार्निश:

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

haproxy:

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

क्या इन सभी को अपने मुख्य वेब सर्वर के सामने इन सभी को मुख्य लाभ प्रदान करने का इरादा है?

यह बहुत ही नाजुक लगता है कि इतने सारे डेमन्स एक साथ काम कर रहे हैं।

आपकी तैनाती और ऑर्डरिंग वरीयता क्या है और क्यों?


47
2017-11-19 17:52


मूल


वार्निश में अब एसएसएल समर्थन है: देखें blog.exceliance.fr/2012/09/10/... - MiniQuark
आप HAPROxy कहना चाहते हैं? - Luis Lobo Borobia
Nginx सबकुछ लगता है, तो मैं बस nginx का उपयोग कहूँगा। - Seun Osewa


जवाब:


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

HAProxy बाजार पर सबसे अच्छा ओपनसोर्स loadbalancer है।
वार्निश बाजार पर सबसे अच्छा ओपनसोर्स स्थिर फ़ाइल कैचर है।
nginx बाजार पर सबसे अच्छा ओपनसोर्स वेबसर्वर है।

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

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

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

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

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

उम्मीद है कि यह मदद करता है: डी

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


59
2017-11-19 18:26



बहुत दिलचस्प, विशेष रूप से डिक्रिप्शन सर्वर के बारे में हिस्सा। +1 - Gerry
बहुत बढ़िया जवाब। मैं सोच रहा हूं कि सब कुछ के सामने क्या बैठता है? क्या यह हैप्रोक्सी या निजिनक्स है? - John
@ जॉन: [क्लाइंट -> हैप्रोक्सी -> वार्निश -> एनजिनक्स -> स्टेटिक कंटेंट] या [क्लाइंट -> हैप्रोक्सी -> एनजिनक्स (वैकल्पिक) -> एप्लीकेशन सर्वर (गतिशील सामग्री)] - MiniQuark
आप स्थैतिक कैश क्यों करेंगे और गतिशील सेवा करेंगे? स्थिर फाइलों की सेवा के लिए Nginx बिजली तेज है। मैं एक ढेर का उपयोग करना पसंद करता हूं [HAProxy -> Nginx] स्थिर और [HAProxy -> Nginx -> Varnish -> Apache] गतिशील पर एक कैश लागू करने के लिए। लोड बैलेंसर पर एसएसएल को समाप्त करना जैसा कि आपने समर्पित टर्मिंग नोड्स के साथ कहा था। - Steve Buzonas


प्रस्तावना

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

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

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

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

कुछ सामान्य और दिलचस्प तैनाती

हैप्रोक्सी (संतुलन) + 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

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

अनुरोध URI (* .jpg * .css * .js) के आधार पर हैप्रोक्सी वार्निश पर रीडायरेक्ट कर सकता है।

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

हैप्रोक्सी (संतुलन) + nginx (होस्ट और कैशिंग के लिए एसएसएल) + वेबसर्वर (आवेदन)

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

ध्यान दें: पोर्ट पुनर्निर्देशन 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 लोड बैलेंसर), हार्डवेयर (एफ 5, किलेनेट, साइट्रिक्स नेटस्केकर), अन्य और विश्वव्यापी (DNS, anycast, CloudFlare)

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

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

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

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

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

nginx: अपाचे जो चूसना नहीं करता है

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

  • वेब सर्वर HTTP या HTTPS
  • सीजीआई / PHP / कुछ अन्य में अनुप्रयोग चलाएं
  • यूआरएल पुनर्निर्देशन / पुनर्लेखन
  • पहुँच नियंत्रण
  • HTTP शीर्षलेख हेरफेर
  • कैशिंग
  • रिवर्स प्रॉक्सी

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

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

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

के सिवाय जब आपका एप्लिकेशन nginx और nginx पर चलाने का इरादा नहीं है, तो आपके स्टैक में कोई भी नहीं है (जावा दुकान किसी को भी?) तो nginx में थोड़ा बिंदु है। वेबसर्वर सुविधाओं को आपके वर्तमान वेबसर्वर में मौजूद होने की संभावना है और अन्य कार्यों को उपयुक्त समर्पित उपकरण (हैप्रोक्सी / वार्निश / सीडीएन) द्वारा बेहतर तरीके से संभाला जाता है।

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

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

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

  • कैशिंग
  • उन्नत कैशिंग
  • ठीक अनाज कैशिंग
  • कैशिंग

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

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

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

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

के सिवाय जब आपके पास अधिकतर स्थैतिक-अभी-जटिल-गतिशील रूप से जेनरेट की गई सामग्री वाली साइट है (निम्नलिखित पैराग्राफ देखें) तो वार्निश आपके वेबसर्वर पर बहुत अधिक प्रोसेसिंग पावर बचा सकता है।

2016 में स्टेटिक कैशिंग ओवरराइड हो गई है

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

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

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

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

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

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

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

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

निष्कर्ष

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

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


28
2018-05-22 18:37



उत्तर की लंबाई की सीमा है, लेकिन आपको इसे प्राप्त करने के लिए कुछ और पुस्तकें लिखनी होंगी। - Michael Hampton♦
कैशिंग के बारे में उल्लेख करने का एक बिंदु: जब आपके पास एप्लिकेशन पर नियंत्रण नहीं होता है तो साइट के प्रदर्शन में सुधार करने का यह एक शक्तिशाली तरीका है; विशेष रूप से यदि एप्लिकेशन में वास्तव में बेवकूफ कैश हेडर हैं (एंटरप्राइज़ ऐप्स किसी को भी?)। यद्यपि आपको प्रमाणित संसाधनों के बारे में बहुत अधिक जानकारी होनी चाहिए। - Cameron Kerr
@ user5994461 मुझे आपके ब्लॉग को पढ़ना अच्छा लगेगा। अद्भुत जवाब! - oxalorg


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

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

कभी-कभी आपको भारी डीडीओएस हमलों के खिलाफ सुरक्षा करना होगा, और सामने में हैपरॉक्स अन्य लोगों की तुलना में अधिक उपयुक्त होगा।

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

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


19
2017-11-20 18:45



HAProxy के लिए +1 - लेखक सर्वर फॉल्ट पर सवालों का जवाब देता है। धन्यवाद। - Joel K
Arenstar: क्या आप इन उपकरणों में से एक लिखा था? विली ताररेउ हैप्रोक्सी का सिद्धांत डेवलपर है। - Joel K
इस विली के लिए धन्यवाद। आपने ऊपर दिए गए एरेनास्टार को मेरे प्रश्न का उत्तर दिया। - John
ध्यान दें कि हैप्रोक्सी के लिए वर्तमान विकास कोड में अब एसएसएल शामिल है। - Joel K


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

nginx

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

वार्निश

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

haproxy

  • सर्वश्रेष्ठ भार संतुलन, बढ़त भार संतुलन सुविधाओं काटने के लिए, तुलनीय हार्डवेयर लोडबैंसर
  • एसएसएल 1.5.0 के बाद से समर्थित है
  • सरल, एक HTTP कार्यान्वयन के बिना सिर्फ एक टीसीपी प्रॉक्सी होने के नाते, जो यह तेजी से और कम बग प्रवण बनाता है।

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

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


13
2017-11-30 11:25





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

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

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

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


5
2017-11-19 17:57



राइट - "बैकएंड पूल" यह इंगित करने के लिए था कि इनमें से तीनों में संतुलित संतुलन सुविधाएं हैं। मेरी शुरुआती जांच से ऐसा लगता है कि हैप्रोक्सी में सबसे ट्यूनेबल भार संतुलन विकल्प हैं। - Joel K
यह उचित लगता है, क्योंकि इसे लोड संतुलन उपकरण के रूप में उद्देश्य से बनाया गया है। दूसरी ओर, वार्निश की लोड संतुलन सुविधाएं बहुत अच्छी हैं, और इस मिश्रण से एक प्रक्रिया को हटाने से आपकी विलंब कम सरलता के साथ हो जाता है। - larsks