मेग्नेटो की मेजबानी के लिए निग्नेक्स निश्चित रूप से एक अच्छा विकल्प है, और यह कई अच्छे (लेकिन छोटे) लाभों के साथ आता है जो साइट के प्रदर्शन को बेहतर बनाने में मदद कर सकते हैं।
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 को सेटअप करना बहुत आसान है और मुझे इसका कॉन्फ़िगरेशन सिंटैक्स पसंद है। यह प्रदर्शन समस्याओं के लिए एक जादू की गोली समाधान नहीं है, लेकिन यह विचार करने के लिए मजबूत लचीला विकल्प है।