वार्निश (सॉफ्टवेयर): Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|HTTP accelerator software}} {{self-published|date=June 2014}} {{Infobox software | name = Varnish | screenshot = | logo...")
 
No edit summary
Line 1: Line 1:
{{Short description|HTTP accelerator software}}
{{Short description|HTTP accelerator software}}
{{self-published|date=June 2014}}
{{Infobox software
{{Infobox software
| name                  = Varnish
| name                  = Varnish
Line 15: Line 14:
}}
}}


वार्निश एक [[HTTP]] त्वरक है जो सामग्री-भारी [[गतिशील वेब साइट]]ों के साथ-साथ [[एपीआई]] के लिए डिज़ाइन किया गया है। अन्य [[वेब त्वरक]] के विपरीत, जैसे कि [[स्क्विड (सॉफ्टवेयर)]], जिसने क्लाइंट-साइड कैश के रूप में जीवन शुरू किया, या [[अपाचे HTTP सर्वर]] और [[nginx]], जो मुख्य रूप से [[अपस्ट्रीम सर्वर]] हैं, वार्निश को HTTP एक्सेलेरेटर के रूप में डिजाइन किया गया था। वार्निश अन्य [[प्रॉक्सी सर्वर]]ों के विपरीत विशेष रूप से HTTP पर केंद्रित है जो अक्सर [[FTP]], [[SMTP]] और अन्य [[नेटवर्क प्रोटोकॉल]] का समर्थन करते हैं।
वार्निश एक [[HTTP]] एक्सिलरेटर (त्वरक) है जो सामग्री-भारी [[गतिशील वेब साइट]] के साथ-साथ [[एपीआई|APIs]] के लिए डिज़ाइन किया गया है। अन्य [[वेब त्वरक]] के विपरीत, जैसे कि [[स्क्विड (सॉफ्टवेयर)]], जिसने क्लाइंट-साइड कैश के रूप में जीवन प्रांरम्भ किया, या [[अपाचे HTTP सर्वर]] और [[nginx]], जो मुख्य रूप से [[अपस्ट्रीम सर्वर]] हैं, वार्निश को HTTP एक्सेलेरेटर के रूप में डिजाइन किया गया था। वार्निश अन्य [[प्रॉक्सी सर्वर]] के विपरीत विशेष रूप से HTTP पर केंद्रित है जो प्रायः [[FTP]], [[SMTP]] और अन्य [[नेटवर्क प्रोटोकॉल]] का समर्थन करते हैं।


==इतिहास==
==इतिहास==
यह परियोजना नॉर्वेजियन टैब्लॉइड अखबार [[दुनिया की सैर]] की ऑनलाइन शाखा द्वारा शुरू की गई थी। वास्तुकार और प्रमुख डेवलपर डेनिश स्वतंत्र सलाहकार [[पॉल-हेनिंग काम्प]] (एक प्रसिद्ध फ्रीबीएसडी डेवलपर) हैं, जिनका प्रबंधन, बुनियादी ढांचा और अतिरिक्त विकास मूल रूप से नॉर्वेजियन लिनक्स परामर्श कंपनी [[लिनप्रो]] द्वारा प्रदान किया गया है। वार्निश का समर्थन, प्रबंधन और विकास बाद में एक अलग कंपनी, वार्निश सॉफ्टवेयर में बदल दिया गया।
यह परियोजना नॉर्वेजियन टैब्लॉइड अखबार [[दुनिया की सैर|वर्डेन्स गैंग (''VG'')]] की ऑनलाइन शाखा द्वारा प्रांरम्भ की गई थी। वास्तुकार और प्रमुख डेवलपर डेनिश स्वतंत्र सलाहकार [[पॉल-हेनिंग काम्प]] (एक प्रसिद्ध फ्रीबीएसडी डेवलपर) हैं, जिनका प्रबंधन, बुनियादी ढांचा और अतिरिक्त विकास मूल रूप से नॉर्वेजियन लिनक्स परामर्श कंपनी [[लिनप्रो]] द्वारा प्रदान किया गया है। वार्निश का समर्थन, प्रबंधन और विकास बाद में एक अलग कंपनी, वार्निश सॉफ्टवेयर में बदल दिया गया है।


वार्निश [[मुफ़्त और खुला स्रोत सॉफ़्टवेयर]] है, जो दो-खंड [[बीएसडी लाइसेंस]] के तहत उपलब्ध है। व्यावसायिक सहायता वार्निश सॉफ्टवेयर सहित अन्य से उपलब्ध है।
वार्निश [[मुफ़्त और खुला स्रोत सॉफ़्टवेयर|फ्री और ओपन सोर्स सॉफ़्टवेयर]] है, जो दो-खंड [[बीएसडी लाइसेंस]] के तहत उपलब्ध है। व्यावसायिक सहायता वार्निश सॉफ्टवेयर सहित अन्य से उपलब्ध है।


वार्निश का संस्करण 1.0 2006 में जारी किया गया था,<ref>{{Cite web|url=http://www.catalystframework.org/calendar/2008/14|title=Catalyst Advent Calendar - Day 14|website=www.catalystframework.org|access-date=Sep 4, 2020}}</ref><ref>{{Cite web|url=https://varnish-cache.org/lists/pipermail/varnish-announce/2006-September/000638.html|title=वार्निश 1.0 जारी किया गया|first=Dag-Erling|last=Smørgrav|date=Sep 20, 2006|access-date=Sep 4, 2020}}</ref> 2008 में वार्निश 2.0,<ref>{{Cite web|url=https://varnish-cache.org/lists/pipermail/varnish-announce/2008-October/000010.html|title=Varnish 2.0 released!|first=Tollef Fog|last=Heen|date=Oct 15, 2008|access-date=Sep 4, 2020}}</ref> 2011 में वार्निश 3.0,<ref>{{Cite web|url=https://varnish-cache.org/lists/pipermail/varnish-announce/2011-June/000670.html|title=Varnish 3.0.0 released|first=Tollef Fog|last=Heen|date=Jun 17, 2011|access-date=Sep 4, 2020}}</ref> 2014 में वार्निश 4.0,<ref>{{Cite web|url=https://varnish-cache.org/lists/pipermail/varnish-announce/2014-April/000696.html|title=Varnish 4.0.0 released|first=Lasse|last=Karstensen|date=Apr 10, 2014|access-date=Sep 4, 2020}}</ref> 2016 में वार्निश 5.0,<ref>{{Cite web|url=http://varnish-cache.org/releases/rel5.0.0.html|title=Varnish Cache 5.0.0 — Varnish HTTP Cache|website=varnish-cache.org|access-date=Sep 4, 2020}}</ref> मार्च 2018 में वार्निश 6.0,<ref>{{cite web|url=https://varnish-cache.org/lists/pipermail/varnish-announce/2018-March/000726.html|access-date=15 May 2018|date=15 March 2018|title=Varnish 6.0 Released|author=Poul-Henning Kamp}}</ref> और सितंबर 2021 में वार्निश 7.0।<ref>{{cite web|url=https://varnish-cache.org/lists/pipermail/varnish-announce/2021-September/000747.html|access-date=9 August 2022|date=9 August 2022|title=Varnish Cache 7.0.0 released|author=Poul-Henning Kamp}}</ref>
वार्निश का संस्करण 1.0 2006 में जारी किया गया था,<ref>{{Cite web|url=http://www.catalystframework.org/calendar/2008/14|title=Catalyst Advent Calendar - Day 14|website=www.catalystframework.org|access-date=Sep 4, 2020}}</ref><ref>{{Cite web|url=https://varnish-cache.org/lists/pipermail/varnish-announce/2006-September/000638.html|title=वार्निश 1.0 जारी किया गया|first=Dag-Erling|last=Smørgrav|date=Sep 20, 2006|access-date=Sep 4, 2020}}</ref> 2008 में वार्निश 2.0,<ref>{{Cite web|url=https://varnish-cache.org/lists/pipermail/varnish-announce/2008-October/000010.html|title=Varnish 2.0 released!|first=Tollef Fog|last=Heen|date=Oct 15, 2008|access-date=Sep 4, 2020}}</ref> 2011 में वार्निश 3.0,<ref>{{Cite web|url=https://varnish-cache.org/lists/pipermail/varnish-announce/2011-June/000670.html|title=Varnish 3.0.0 released|first=Tollef Fog|last=Heen|date=Jun 17, 2011|access-date=Sep 4, 2020}}</ref> 2014 में वार्निश 4.0,<ref>{{Cite web|url=https://varnish-cache.org/lists/pipermail/varnish-announce/2014-April/000696.html|title=Varnish 4.0.0 released|first=Lasse|last=Karstensen|date=Apr 10, 2014|access-date=Sep 4, 2020}}</ref> 2016 में वार्निश 5.0,<ref>{{Cite web|url=http://varnish-cache.org/releases/rel5.0.0.html|title=Varnish Cache 5.0.0 — Varnish HTTP Cache|website=varnish-cache.org|access-date=Sep 4, 2020}}</ref> मार्च 2018 में वार्निश 6.0,<ref>{{cite web|url=https://varnish-cache.org/lists/pipermail/varnish-announce/2018-March/000726.html|access-date=15 May 2018|date=15 March 2018|title=Varnish 6.0 Released|author=Poul-Henning Kamp}}</ref> और सितंबर 2021 में वार्निश 7.0।<ref>{{cite web|url=https://varnish-cache.org/lists/pipermail/varnish-announce/2021-September/000747.html|access-date=9 August 2022|date=9 August 2022|title=Varnish Cache 7.0.0 released|author=Poul-Henning Kamp}}</ref>
==आर्किटेक्चर==
वार्निश डेटा को [[ आभासी मेमोरी ]]में संग्रहीत करता है और यह तय करने का कार्य छोड़ देता है कि मेमोरी में क्या संग्रहीत है और [[ऑपरेटिंग सिस्टम]] की डिस्क पर क्या पृष्ठांकित होता है। यह उस स्थिति से बचने में मदद करता है जहां ऑपरेटिंग सिस्टम एप्लिकेशन द्वारा डिस्क पर ले जाए जाने पर डेटा को कैश करना प्रांरम्भ कर देता है।


वार्निश भारी रूप से [[थ्रेड (कंप्यूटर विज्ञान)]] है, जिसमें प्रत्येक क्लाइंट कनेक्शन को एक अलग वर्कर थ्रेड द्वारा नियंत्रित किया जाता है। जब सक्रिय वर्कर थ्रेड्स की संख्या पर कॉन्फ़िगर की गई सीमा पूरी हो जाती है, तो आने वाले कनेक्शनों को एक अतिप्रवाह कतार में रखा जाता है; जब यह कतार अपनी कॉन्फ़िगर की गई सीमा तक पहुंच जाती है तो आने वाले कनेक्शन अस्वीकार कर दिए जाते है।


==वास्तुकला==
प्रमुख कॉन्फ़िगरेशन तंत्र ''वार्निश कॉन्फ़िगरेशन लैंग्वेज'' (वीसीएल) है, एक [[डोमेन-विशिष्ट भाषा|डोमेन-विशिष्ट लैंग्वेज]] (डीएसएल) जिसका उपयोग हुक लिखने के लिए किया जाता है जिसे प्रत्येक अनुरोध के प्रबंधन में महत्वपूर्ण बिंदुओं पर बुलाया जाता है। अधिकांश नीतिगत निर्णय वीसीएल कोड पर छोड़ दिए जाते हैं, जिससे वार्निश अधिकांश अन्य HTTP त्वरक की तुलना में अधिक कॉन्फ़िगर करने योग्य और अनुकूलनीय बन जाता है। जब एक वीसीएल स्क्रिप्ट लोड की जाती है, तो इसे [[सी (प्रोग्रामिंग भाषा)|सी (प्रोग्रामिंग लैंग्वेज)]] में अनुवादित किया जाता है, सिस्टम कंपाइलर द्वारा एक साझा ऑब्जेक्ट में संकलित किया जाता है, और सीधे एक्सेलेरेटर में लोड किया जाता है जिसे इस प्रकार पुनरारंभ किए बिना पुन: कॉन्फ़िगर किया जा सकता है।
वार्निश डेटा को [[ आभासी मेमोरी ]] में संग्रहीत करता है और यह तय करने का कार्य छोड़ देता है कि मेमोरी में क्या संग्रहीत है और [[ऑपरेटिंग सिस्टम]] की डिस्क पर क्या पृष्ठांकित होता है। यह उस स्थिति से बचने में मदद करता है जहां ऑपरेटिंग सिस्टम एप्लिकेशन द्वारा डिस्क पर ले जाए जाने पर डेटा को कैश करना शुरू कर देता है।


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


प्रमुख कॉन्फ़िगरेशन तंत्र वार्निश कॉन्फ़िगरेशन लैंग्वेज (वीसीएल) है, एक [[डोमेन-विशिष्ट भाषा]] (डीएसएल) जिसका उपयोग हुक लिखने के लिए किया जाता है जिसे प्रत्येक अनुरोध के प्रबंधन में महत्वपूर्ण बिंदुओं पर बुलाया जाता है। अधिकांश नीतिगत निर्णय वीसीएल कोड पर छोड़ दिए जाते हैं, जिससे वार्निश अधिकांश अन्य HTTP त्वरक की तुलना में अधिक कॉन्फ़िगर करने योग्य और अनुकूलनीय बन जाता है।{{citation needed|date=May 2018}} जब एक वीसीएल स्क्रिप्ट लोड की जाती है, तो इसे [[सी (प्रोग्रामिंग भाषा)]] में अनुवादित किया जाता है, सिस्टम कंपाइलर द्वारा एक साझा ऑब्जेक्ट में संकलित किया जाता है, और सीधे एक्सेलेरेटर में लोड किया जाता है जिसे इस प्रकार पुनरारंभ किए बिना पुन: कॉन्फ़िगर किया जा सकता है।
तेज़ पथ में सिस्टम कॉल की संख्या को न्यूनतम करने के लिए, लॉग डेटा को [[साझा मेमोरी (इंटरप्रोसेस संचार)|शेयर्ड मेमोरी (इंटरप्रोसेस संचार)]] में संग्रहीत किया जाता है, और डिस्क पर लॉग डेटा की मॉनीटरिंग, ​​फ़िल्टरिंग, फ़ॉर्मेटिंग और लिखने का कार्य एक अलग एप्लिकेशन को सौंपा जाता है। .
 
कई रन-टाइम पैरामीटर चीजों को नियंत्रित करते हैं जैसे कि वर्कर थ्रेड की अधिकतम और न्यूनतम संख्या, विभिन्न टाइमआउट आदि। एक कमांड-लाइन प्रबंधन इंटरफ़ेस इन पैरामीटर को संशोधित करने और नई वीसीएल स्क्रिप्ट को संकलित, लोड और सक्रिय करने की अनुमति देता है। , त्वरक को पुनरारंभ किए बिना।
 
तेज़ पथ में सिस्टम कॉल की संख्या को न्यूनतम करने के लिए, लॉग डेटा को [[साझा मेमोरी (इंटरप्रोसेस संचार)]] में संग्रहीत किया जाता है, और डिस्क पर लॉग डेटा की निगरानी, ​​फ़िल्टरिंग, फ़ॉर्मेटिंग और लिखने का कार्य एक अलग एप्लिकेशन को सौंपा जाता है। .


===प्रदर्शन मेट्रिक्स===
===प्रदर्शन मेट्रिक्स===
वार्निश कैश सूचना वितरण को कई सौ गुना तेज कर सकता है। उचित संचालन और प्रदर्शन सुनिश्चित करने के लिए, वार्निश मेट्रिक्स को उजागर करता है जिसकी निगरानी निम्नलिखित क्षेत्रों में की जा सकती है:<ref>{{Cite web|url=https://www.datadoghq.com/blog/top-varnish-performance-metrics/|title=शीर्ष वार्निश प्रदर्शन मेट्रिक्स|date=Jul 28, 2015|website=शीर्ष वार्निश प्रदर्शन मेट्रिक्स|access-date=Sep 4, 2020}}</ref>
वार्निश कैश सूचना वितरण को कई सौ गुना तेज कर सकता है। उचित संचालन और प्रदर्शन सुनिश्चित करने के लिए, वार्निश मेट्रिक्स को उजागर करता है जिसकी मॉनीटरिंग निम्नलिखित क्षेत्रों में की जा सकती है:<ref>{{Cite web|url=https://www.datadoghq.com/blog/top-varnish-performance-metrics/|title=शीर्ष वार्निश प्रदर्शन मेट्रिक्स|date=Jul 28, 2015|website=शीर्ष वार्निश प्रदर्शन मेट्रिक्स|access-date=Sep 4, 2020}}</ref>
* क्लाइंट मेट्रिक्स: क्लाइंट कनेक्शन और अनुरोध
* '''क्लाइंट मेट्रिक्स''': क्लाइंट कनेक्शन और अनुरोध
* कैश प्रदर्शन: [[कैश (कंप्यूटिंग)]] हिट, निष्कासन
* '''कैश प्रदर्शन''': [[कैश (कंप्यूटिंग)]] हिट, निष्कासन
* थ्रेड मेट्रिक्स: थ्रेड निर्माण, विफलताएं, कतारें
* '''थ्रेड मेट्रिक्स''': थ्रेड निर्माण, विफलताएं, कतारें
* बैकएंड मेट्रिक्स: फ्रंट और बैकएंड कनेक्शन की सफलता, विफलता और स्वास्थ्य
* '''बैकएंड मेट्रिक्स''': फ्रंट और बैकएंड कनेक्शन की सफलता, विफलता और स्वास्थ्य


===मीट्रिक संग्रह===
===मीट्रिक संग्रह===
मॉनिटरिंग और लॉगिंग टूल के साथ वार्निश कैश भेजा जाता है। सबसे अधिक उपयोग में से एक वार्निशस्टैट है जो वार्निश के वर्तमान प्रदर्शन का एक विस्तृत स्नैपशॉट देता है। यह इन-मेमोरी आँकड़ों तक पहुँच प्रदान करता है जैसे कैश हिट और मिस, संसाधन खपत, बनाए गए थ्रेड, और बहुत कुछ।<ref>{{Cite web|url=https://www.datadoghq.com/blog/how-to-collect-varnish-metrics/|title=वार्निश मेट्रिक्स कैसे एकत्र करें|date=Jul 28, 2015|website=वार्निश मेट्रिक्स कैसे एकत्र करें|access-date=Sep 4, 2020}}</ref>
मॉनिटरिंग और लॉगिंग टूल के साथ वार्निश कैश भेजा जाता है। सबसे अधिक उपयोग में से एक वार्निशस्टैट है जो वार्निश के वर्तमान प्रदर्शन का एक विस्तृत स्नैपशॉट देता है। यह इन-मेमोरी आँकड़ों तक पहुँच प्रदान करता है जैसे कैश हिट और मिस, संसाधन खपत, बनाए गए थ्रेड, और इत्यादि।<ref>{{Cite web|url=https://www.datadoghq.com/blog/how-to-collect-varnish-metrics/|title=वार्निश मेट्रिक्स कैसे एकत्र करें|date=Jul 28, 2015|website=वार्निश मेट्रिक्स कैसे एकत्र करें|access-date=Sep 4, 2020}}</ref>
 


====वार्निशस्टेट====
====वार्निशस्टेट====
कमांड लाइन से वार्निशस्टैट चलाने से सभी उपलब्ध वार्निश मेट्रिक्स की लगातार अद्यतन सूची मिलती है। यदि -1 ध्वज जोड़ा जाता है, तो वार्निशस्टैट सूची को एक बार प्रिंट करने के बाद बाहर निकल जाएगा।<ref>{{Cite web|url=https://linux.die.net/man/1/varnishstat|title=varnishstat(1): HTTP accelerator statistics - Linux man page|website=linux.die.net|access-date=Sep 4, 2020}}</ref> कैश की स्थिति की जांच करने के लिए वार्निशस्टैट का उपयोग एक स्टैंडअलोन टूल के रूप में किया जा सकता है। समय के साथ मेट्रिक्स को ग्राफ़ करने के लिए, बुनियादी ढांचे के अन्य आँकड़ों के साथ सहसंबंधित करने और उत्पन्न होने वाली किसी भी समस्या के बारे में अलर्ट सेट करने के लिए, निगरानी सेवाएँ वार्निश के साथ एकीकृत हो सकती हैं और वार्निशस्टैट मेट्रिक्स एकत्र कर सकती हैं।
कमांड लाइन से वार्निशस्टैट चलाने से सभी उपलब्ध वार्निश मेट्रिक्स की लगातार अद्यतन सूची मिलती है। यदि -1 ध्वज जोड़ा जाता है, तो वार्निशस्टैट सूची को एक बार प्रिंट करने के बाद बाहर निकल जाएगा।<ref>{{Cite web|url=https://linux.die.net/man/1/varnishstat|title=varnishstat(1): HTTP accelerator statistics - Linux man page|website=linux.die.net|access-date=Sep 4, 2020}}</ref> कैश की स्थिति की जांच करने के लिए वार्निशस्टैट का उपयोग एक स्टैंडअलोन टूल के रूप में किया जा सकता है। समय के साथ मेट्रिक्स को ग्राफ़ करने के लिए, बुनियादी ढांचे के अन्य आँकड़ों के साथ सहसंबंधित करने और उत्पन्न होने वाली किसी भी समस्या के बारे में अलर्ट सेट करने के लिए, मॉनीटरिंग सेवाएँ वार्निश के साथ एकीकृत हो सकती हैं और वार्निशस्टैट मेट्रिक्स एकत्र कर सकती हैं।


[[File:Varnishlog Example.png|thumb|वार्निशलॉग विकिमीडिया बैकएंड के साथ चल रहा है]]
[[File:Varnishlog Example.png|thumb|वार्निशलॉग विकिमीडिया बैकएंड के साथ चल रहा है]]
Line 56: Line 52:


==लोड संतुलन==
==लोड संतुलन==
वार्निश [[राउंड-रॉबिन शेड्यूलिंग]] और रैंडम डायरेक्टर दोनों का उपयोग करके प्रति-बैकएंड वेटिंग के साथ [[ लोड संतुलन (कंप्यूटिंग) ]] का समर्थन करता है। बैकएंड की बुनियादी स्वास्थ्य जांच भी उपलब्ध है।<ref>{{cite web |url=https://www.varnish-cache.org/wiki/BackendPolling |title=BackendPolling – Varnish |publisher=Varnish-cache.org |access-date=2014-07-18 |archive-date=2010-08-21 |archive-url=https://web.archive.org/web/20100821130306/http://www.varnish-cache.org/wiki/BackendPolling |url-status=dead }}</ref>
वार्निश [[राउंड-रॉबिन शेड्यूलिंग]] और रैंडम डायरेक्टर दोनों का उपयोग करके प्रति-बैकएंड वेटिंग के साथ [[ लोड संतुलन (कंप्यूटिंग) ]] का समर्थन करता है। बैकएंड की बेसिक  हेल्थ-चेकिंग   भी उपलब्ध है।<ref>{{cite web |url=https://www.varnish-cache.org/wiki/BackendPolling |title=BackendPolling – Varnish |publisher=Varnish-cache.org |access-date=2014-07-18 |archive-date=2010-08-21 |archive-url=https://web.archive.org/web/20100821130306/http://www.varnish-cache.org/wiki/BackendPolling |url-status=dead }}</ref>




Line 62: Line 58:
वार्निश कैश में ये भी विशेषताएं हैं:
वार्निश कैश में ये भी विशेषताएं हैं:
* वार्निश मॉड्यूल के साथ प्लगइन समर्थन, जिसे [[वीएमओडी]] भी कहा जाता है<ref>{{cite web|url=https://www.varnish-cache.org/vmods |title=VMODs Directory (Varnish Modules and Extensions) &#124; Varnish Community |publisher=Varnish-cache.org |access-date=2014-07-18}}</ref>
* वार्निश मॉड्यूल के साथ प्लगइन समर्थन, जिसे [[वीएमओडी]] भी कहा जाता है<ref>{{cite web|url=https://www.varnish-cache.org/vmods |title=VMODs Directory (Varnish Modules and Extensions) &#124; Varnish Community |publisher=Varnish-cache.org |access-date=2014-07-18}}</ref>
* एज साइड के लिए समर्थन में संपीड़ित ईएसआई टुकड़ों को एक साथ सिलाई करना शामिल है
* एज साइड के लिए समर्थन में संपीड़ित ईएसआई टुकड़ों को एक साथ सिलाई करना सम्मिलित है
* [[Gzip]] संपीड़न और विसंपीड़न
* [[Gzip]] कम्प्रेशन (संपीड़न) और डिकंप्रेशन (विसंपीड़न)
* डीएनएस, रैंडम, हैशिंग और क्लाइंट आईपी-आधारित निदेशक
* DNS, रैंडम, हैशिंग और क्लाइंट आईपी-आधारित निदेशक
* HTTP स्ट्रीमिंग पास और फ़ेच
* HTTP स्ट्रीमिंग पास और फ़ेच
* एलआरयू निष्कासन के बिना, लगातार भंडारण के लिए प्रायोगिक समर्थन
* एलआरयू निष्कासन के बिना, लगातार भंडारण के लिए प्रायोगिक समर्थन
Line 88: Line 84:
   |isbn=9781491972229
   |isbn=9781491972229
}}</ref> मोड.
}}</ref> मोड.
** यदि कोई सर्वर खराब हो जाता है और HTTP स्टेटस कोड#5xx सर्वर त्रुटियों की सूची लौटाता है, तो ग्रेस मोड समाप्ति हेडर को अनदेखा कर देगा और कैश्ड संस्करण लौटाना जारी रखेगा। लोड संतुलन (कंप्यूटिंग) करते समय सेंट मोड का उपयोग किया जाता है, जहां एक असफल सर्वर को संगरोध अवधि के लिए ब्लैकलिस्ट किया जाता है और सर्वर पूल से बाहर रखा जाता है।
** यदि कोई सर्वर खराब हो जाता है और HTTP स्टेटस कोड 500 सर्वर त्रुटियों की सूची लौटाता है, तो ग्रेस मोड समाप्ति हेडर को अनदेखा कर देगा और कैश्ड संस्करण लौटाना जारी रखेगा। लोड संतुलन (कंप्यूटिंग) करते समय सेंट मोड का उपयोग किया जाता है, जहां एक असफल सर्वर को संगरोध अवधि के लिए ब्लैकलिस्ट किया जाता है और सर्वर पूल से बाहर रखा जाता है।


==यह भी देखें==
==यह भी देखें==
{{Portal|Free and open-source software}}
{{Portal|Free and open-source software}}
* वेब एक्सेलेरेटर जो होस्ट-आधारित HTTP त्वरण पर चर्चा करता है
* वेब एक्सेलेरेटर जो होस्ट-आधारित HTTP एक्सीलेरेशन (त्वरण) पर चर्चा करता है
* प्रॉक्सी सर्वर जो क्लाइंट-साइड प्रॉक्सी पर चर्चा करता है
* प्रॉक्सी सर्वर जो क्लाइंट-साइड प्रॉक्सी पर चर्चा करता है
* [[ प्रॉक्सी को उल्टा करें ]] जो मूल-पक्ष प्रॉक्सी पर चर्चा करती है
* [[ प्रॉक्सी को उल्टा करें |  रिवर्स प्रॉक्सी]] जो मूल-पक्ष प्रॉक्सी पर चर्चा करती है
* [[वेब सर्वर की तुलना]]
* [[वेब सर्वर की तुलना]]
* [[इंटरनेट कैश प्रोटोकॉल]]
* [[इंटरनेट कैश प्रोटोकॉल]]
* गुरु ध्यान - वार्निश द्वारा प्रयुक्त एक त्रुटि संदेश
* गुरु  मैडिटेशन - वार्निश द्वारा प्रयुक्त एक त्रुटि संदेश


==संदर्भ==
==संदर्भ==
{{Reflist|30em}}
{{Reflist|30em}}
==बाहरी संबंध==
==बाहरी संबंध==
* {{official website}}
* {{official website}}

Revision as of 20:11, 2 August 2023

Varnish
Developer(s)Poul-Henning Kamp, Redpill-Linpro, Varnish Software
Stable release
Script error: The module returned a nil value. It is supposed to return an export table. / Script error: The module returned a nil value. It is supposed to return an export table.; Error: first parameter cannot be parsed as a date or time. (Script error: The module returned a nil value. It is supposed to return an export table.)
Written inC
Operating systemBSD, Linux, Unix
TypeHTTP accelerator
Licensetwo-clause BSD license

वार्निश एक HTTP एक्सिलरेटर (त्वरक) है जो सामग्री-भारी गतिशील वेब साइट के साथ-साथ APIs के लिए डिज़ाइन किया गया है। अन्य वेब त्वरक के विपरीत, जैसे कि स्क्विड (सॉफ्टवेयर), जिसने क्लाइंट-साइड कैश के रूप में जीवन प्रांरम्भ किया, या अपाचे HTTP सर्वर और nginx, जो मुख्य रूप से अपस्ट्रीम सर्वर हैं, वार्निश को HTTP एक्सेलेरेटर के रूप में डिजाइन किया गया था। वार्निश अन्य प्रॉक्सी सर्वर के विपरीत विशेष रूप से HTTP पर केंद्रित है जो प्रायः FTP, SMTP और अन्य नेटवर्क प्रोटोकॉल का समर्थन करते हैं।

इतिहास

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

वार्निश फ्री और ओपन सोर्स सॉफ़्टवेयर है, जो दो-खंड बीएसडी लाइसेंस के तहत उपलब्ध है। व्यावसायिक सहायता वार्निश सॉफ्टवेयर सहित अन्य से उपलब्ध है।

वार्निश का संस्करण 1.0 2006 में जारी किया गया था,[1][2] 2008 में वार्निश 2.0,[3] 2011 में वार्निश 3.0,[4] 2014 में वार्निश 4.0,[5] 2016 में वार्निश 5.0,[6] मार्च 2018 में वार्निश 6.0,[7] और सितंबर 2021 में वार्निश 7.0।[8]

आर्किटेक्चर

वार्निश डेटा को आभासी मेमोरी में संग्रहीत करता है और यह तय करने का कार्य छोड़ देता है कि मेमोरी में क्या संग्रहीत है और ऑपरेटिंग सिस्टम की डिस्क पर क्या पृष्ठांकित होता है। यह उस स्थिति से बचने में मदद करता है जहां ऑपरेटिंग सिस्टम एप्लिकेशन द्वारा डिस्क पर ले जाए जाने पर डेटा को कैश करना प्रांरम्भ कर देता है।

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

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

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

तेज़ पथ में सिस्टम कॉल की संख्या को न्यूनतम करने के लिए, लॉग डेटा को शेयर्ड मेमोरी (इंटरप्रोसेस संचार) में संग्रहीत किया जाता है, और डिस्क पर लॉग डेटा की मॉनीटरिंग, ​​फ़िल्टरिंग, फ़ॉर्मेटिंग और लिखने का कार्य एक अलग एप्लिकेशन को सौंपा जाता है। .

प्रदर्शन मेट्रिक्स

वार्निश कैश सूचना वितरण को कई सौ गुना तेज कर सकता है। उचित संचालन और प्रदर्शन सुनिश्चित करने के लिए, वार्निश मेट्रिक्स को उजागर करता है जिसकी मॉनीटरिंग निम्नलिखित क्षेत्रों में की जा सकती है:[9]

  • क्लाइंट मेट्रिक्स: क्लाइंट कनेक्शन और अनुरोध
  • कैश प्रदर्शन: कैश (कंप्यूटिंग) हिट, निष्कासन
  • थ्रेड मेट्रिक्स: थ्रेड निर्माण, विफलताएं, कतारें
  • बैकएंड मेट्रिक्स: फ्रंट और बैकएंड कनेक्शन की सफलता, विफलता और स्वास्थ्य

मीट्रिक संग्रह

मॉनिटरिंग और लॉगिंग टूल के साथ वार्निश कैश भेजा जाता है। सबसे अधिक उपयोग में से एक वार्निशस्टैट है जो वार्निश के वर्तमान प्रदर्शन का एक विस्तृत स्नैपशॉट देता है। यह इन-मेमोरी आँकड़ों तक पहुँच प्रदान करता है जैसे कैश हिट और मिस, संसाधन खपत, बनाए गए थ्रेड, और इत्यादि।[10]

वार्निशस्टेट

कमांड लाइन से वार्निशस्टैट चलाने से सभी उपलब्ध वार्निश मेट्रिक्स की लगातार अद्यतन सूची मिलती है। यदि -1 ध्वज जोड़ा जाता है, तो वार्निशस्टैट सूची को एक बार प्रिंट करने के बाद बाहर निकल जाएगा।[11] कैश की स्थिति की जांच करने के लिए वार्निशस्टैट का उपयोग एक स्टैंडअलोन टूल के रूप में किया जा सकता है। समय के साथ मेट्रिक्स को ग्राफ़ करने के लिए, बुनियादी ढांचे के अन्य आँकड़ों के साथ सहसंबंधित करने और उत्पन्न होने वाली किसी भी समस्या के बारे में अलर्ट सेट करने के लिए, मॉनीटरिंग सेवाएँ वार्निश के साथ एकीकृत हो सकती हैं और वार्निशस्टैट मेट्रिक्स एकत्र कर सकती हैं।

वार्निशलॉग विकिमीडिया बैकएंड के साथ चल रहा है

वार्निशलॉग

वार्निशलॉग एक उपकरण है जिसका उपयोग वार्निश के कॉन्फ़िगरेशन को डीबग या ट्यून करने के लिए किया जा सकता है, क्योंकि यह प्रत्येक व्यक्तिगत अनुरोध के बारे में विस्तृत जानकारी प्रदान करता है।

लोड संतुलन

वार्निश राउंड-रॉबिन शेड्यूलिंग और रैंडम डायरेक्टर दोनों का उपयोग करके प्रति-बैकएंड वेटिंग के साथ लोड संतुलन (कंप्यूटिंग) का समर्थन करता है। बैकएंड की बेसिक  हेल्थ-चेकिंग  भी उपलब्ध है।[12]


अन्य विशेषताएं

वार्निश कैश में ये भी विशेषताएं हैं:

  • वार्निश मॉड्यूल के साथ प्लगइन समर्थन, जिसे वीएमओडी भी कहा जाता है[13]
  • एज साइड के लिए समर्थन में संपीड़ित ईएसआई टुकड़ों को एक साथ सिलाई करना सम्मिलित है
  • Gzip कम्प्रेशन (संपीड़न) और डिकंप्रेशन (विसंपीड़न)
  • DNS, रैंडम, हैशिंग और क्लाइंट आईपी-आधारित निदेशक
  • HTTP स्ट्रीमिंग पास और फ़ेच
  • एलआरयू निष्कासन के बिना, लगातार भंडारण के लिए प्रायोगिक समर्थन
  • संत[14] और अनुग्रह[15][16] मोड.
    • यदि कोई सर्वर खराब हो जाता है और HTTP स्टेटस कोड 500 सर्वर त्रुटियों की सूची लौटाता है, तो ग्रेस मोड समाप्ति हेडर को अनदेखा कर देगा और कैश्ड संस्करण लौटाना जारी रखेगा। लोड संतुलन (कंप्यूटिंग) करते समय सेंट मोड का उपयोग किया जाता है, जहां एक असफल सर्वर को संगरोध अवधि के लिए ब्लैकलिस्ट किया जाता है और सर्वर पूल से बाहर रखा जाता है।

यह भी देखें

संदर्भ

  1. "Catalyst Advent Calendar - Day 14". www.catalystframework.org. Retrieved Sep 4, 2020.
  2. Smørgrav, Dag-Erling (Sep 20, 2006). "वार्निश 1.0 जारी किया गया". Retrieved Sep 4, 2020.
  3. Heen, Tollef Fog (Oct 15, 2008). "Varnish 2.0 released!". Retrieved Sep 4, 2020.
  4. Heen, Tollef Fog (Jun 17, 2011). "Varnish 3.0.0 released". Retrieved Sep 4, 2020.
  5. Karstensen, Lasse (Apr 10, 2014). "Varnish 4.0.0 released". Retrieved Sep 4, 2020.
  6. "Varnish Cache 5.0.0 — Varnish HTTP Cache". varnish-cache.org. Retrieved Sep 4, 2020.
  7. Poul-Henning Kamp (15 March 2018). "Varnish 6.0 Released". Retrieved 15 May 2018.
  8. Poul-Henning Kamp (9 August 2022). "Varnish Cache 7.0.0 released". Retrieved 9 August 2022.
  9. "शीर्ष वार्निश प्रदर्शन मेट्रिक्स". शीर्ष वार्निश प्रदर्शन मेट्रिक्स. Jul 28, 2015. Retrieved Sep 4, 2020.
  10. "वार्निश मेट्रिक्स कैसे एकत्र करें". वार्निश मेट्रिक्स कैसे एकत्र करें. Jul 28, 2015. Retrieved Sep 4, 2020.
  11. "varnishstat(1): HTTP accelerator statistics - Linux man page". linux.die.net. Retrieved Sep 4, 2020.
  12. "BackendPolling – Varnish". Varnish-cache.org. Archived from the original on 2010-08-21. Retrieved 2014-07-18.
  13. "VMODs Directory (Varnish Modules and Extensions) | Varnish Community". Varnish-cache.org. Retrieved 2014-07-18.
  14. "Saint Mode". Varnish. Archived from the original on 7 May 2011.
  15. "Grace Mode". Varnish. Archived from the original on 9 May 2011.
  16. Feryn, Thijs (2017). Getting Started with Varnish Cache: Accelerate Your Web Applications. O'Reilly Media, Inc. p. 85. ISBN 9781491972229.

बाहरी संबंध