NGINX का उपयोग करने का उत्तम लाभ


16

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


हमारे पास NginX के साथ समर्पित सर्वर पर चलने वाली 2 दुकानें हैं। उच्च ट्रैफ़िक दुकानों के लिए निश्चित रूप से एक लाभ है क्योंकि नग्नेक्स केवल अनुरोधों को बेहतर तरीके से संभालता है और मैगेंटो के लिए अधिक संसाधन छोड़ देता है। कम यातायात की दुकानों के लिए नहीं im यकीन है कि वहाँ कोई लाभ है
Sander Mangel

जवाबों:


15

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

Nginx और Apache के बीच मुख्य अंतर यह है कि Nginx नॉन-ब्लॉकिंग Evented IO का उपयोग करता है, और Apache बस मल्टीथ्रेडिंग / प्रोसेसिंग का उपयोग करता है। क्या अंतर है और यह क्यों मायने रखता है? अच्छी तरह से अपाचे के मामले में, कहें कि इसमें 5 धागे हैं, यह किसी भी समय किसी चीज़ के लिए 5 अनुरोधों को संभाल सकता है। यदि उन थ्रेड्स में से एक को समाप्त होने में लंबा समय लगता है, तो आने वाले अनुरोधों को संभालने के लिए केवल 4 धागे बचे हैं। यदि सभी 5 धागे बंद हो जाते हैं, तो कोई भी आवक अनुरोध समाप्त नहीं किया जा सकता है।

इवेंटेड IO के साथ जब किसी थ्रेड को किसी चीज़ के लिए अनुरोध मिलता है, तो वह किसी ईवेंट को बंद कर देता है और सीधे अगले अनुरोध पर चला जाता है। जब ईवेंट वापस कॉल करता है, तो यह संबंधित क्लाइंट की प्रतिक्रिया पर गुजरता है।

यह लगभग अतुल्यकालिक जावास्क्रिप्ट कैसे काम करता है के समान है। आप एक AJAX अनुरोध को बंद कर देते हैं और तब तक जारी रखते हैं जब तक आपको कॉलबैक नहीं मिलता।

यह आधुनिक दृष्टिकोण बहुत सी थ्रेड या वर्कर सिस्टम प्रॉसेस के ओवरहेडिंग के बिना बहुत सारी छोटी स्टैटिक फ़ाइलों की सेवा करने के लिए अनुकूल है।

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

अंतर बहुत बड़ा नहीं है, लेकिन जैसा कि आप उन छोटे अंतरों के हजारों अनुरोधों को जोड़ते हैं, कुल मिलाकर, एक बड़ा अंतर बनाते हैं।

अब यह याद रखना महत्वपूर्ण है कि Magento के आवेदन में सबसे बड़ा प्रदर्शन अड़चन PHP कोड का निष्पादन है। यहाँ Apache और Nginx के बीच प्रदर्शन में मूल रूप से नगण्य अंतर है। महत्वपूर्ण बात यह है कि पीएचपी-एफपीएम का उपयोग करें, और अपाचे के साथ कार्यकर्ता एमपीएम (और निश्चित रूप से प्रीफ़ॉर्क / मॉड-पीएचपी से बचें)। मुख्य कारण यह है कि आप केवल एक PHP दुभाषिया का आह्वान करते हैं जब आपको PHP कोड निष्पादित करने की आवश्यकता होती है, और आप एपीसी जैसे प्रभावी ढंग से कैशिंग सॉफ़्टवेयर का उपयोग कर सकते हैं (और यह आपको प्राप्त होने वाला सबसे बड़ा प्रदर्शन बढ़ावा देगा)।

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

व्यक्तिगत रूप से, मुझे नग्नेक्स पसंद है क्योंकि यह कुशलतापूर्वक स्थैतिक सामग्री परोसता है, PHP-FPM को सेटअप करना बहुत आसान है और मुझे इसका कॉन्फ़िगरेशन सिंटैक्स पसंद है। यह प्रदर्शन समस्याओं के लिए एक जादू की गोली समाधान नहीं है, लेकिन यह विचार करने के लिए मजबूत लचीला विकल्प है।


1
एक शानदार उत्तर जो मैगेंटो
2018 '41 के बाद

युप आरोन के साथ सहमत हैं 100%, हम भी अपने अधिकांश मैगेंटो की तैनाती के लिए नॅग्नेक्स का उपयोग करते हैं, क्योंकि यह स्टैटिक कंटेंट को तेजी से सर्वर करने और अपाचे की तुलना में अधिक संख्या में समवर्ती अनुरोधों को संभालने की क्षमता के कारण है। केवल एक ही नकारात्मक पहलू जो हम Nginx के साथ भर में आए हैं, हमारी परियोजनाओं में से एक है, यह बेतरतीब ढंग से 504 गेटवे टाइमआउट त्रुटि (भले ही सर्वर लोड काफी कम हो) फेंक रहा है। हमने अभी तक इस पर एक कील नहीं लगाई है .. विभिन्न मंचों में वर्णित अधिकांश समाधानों ने बहुत मदद नहीं की है।
विंची रूफस

1

मैं कहूंगा कि मैगेंटो का उपयोग करने पर नग्नेक्स का प्रदर्शन लाभ उपेक्षित है। हारून द्वारा बताए गए इवेंट-आधारित IO का लाभ Apache (ईवेंट MPM का उपयोग करते समय) पर भी लागू होता है।

सामान्य रूप से Magento के बारे में बोलते हुए, सबसे अधिक प्रसंस्करण (99%) PHP और डेटाबेस में होता है, इसलिए पहले 1% का अनुकूलन आपको अपेक्षाकृत कम लाभ देगा।

हालाँकि, कुछ और नाम रखने के लिए, Magento के लिए Nginx को चुनने के अन्य कारण हैं, जैसे कि एक छोटी मेमोरी फ़ुटप्रिंट, बेहतर दर सीमा और SPDY समर्थन।

Apache पर चल रहे मौजूदा Magento साइट्स को कनवर्ट करते समय Nginx को एक बड़ा नुकसान होता है, क्योंकि कई .htaccess स्टेटमेंट सीधे Nginx स्टेटमेंट पर मैप नहीं करते हैं। उदाहरण के लिए, Nginx ACL में होस्टनाम का समर्थन नहीं करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.