Apache APISIX बनाम NGINX
February 2, 2024
W3Techs के जून 2022 तक के आंकड़ों के अनुसार, NGINX दुनिया में सबसे अधिक इस्तेमाल किया जाने वाला वेब सर्वर है, जिसका बाजार में 33.6% हिस्सा है। इसके व्यापक उपयोग और प्रशंसनीय प्रदर्शन ने उपयोगकर्ताओं के बीच एक उच्च स्तर का विश्वास स्थापित किया है, जिससे यह तुलना के लिए एक लगातार बेंचमार्क बन गया है।
प्रदर्शन परीक्षण परिणाम
व्यावहारिक परीक्षण में, हमने APISIX और NGINX के प्रदर्शन की तुलना एक सरल परिदृश्य में की, जिसके निम्नलिखित परिणाम थे:
-
APISIX ने एकल CPU कोर पर 58,080 का QPS प्रदर्शन दिखाया, जो NGINX के 37,154 के प्रदर्शन से बेहतर है।
-
APISIX का प्रदर्शन NGINX से 56% अधिक है।
परीक्षण कॉन्फ़िगरेशन और स्ट्रेस टेस्ट परिणाम
| APISIX | NGINX | |
|---|---|---|
| सिंगल-कोर QPS | 58080 | 37151 |
| स्ट्रेस टेस्टिंग | ![]() | ![]() |
| प्राथमिक कॉन्फ़िगरेशन | routes: - uri: /hello upstream: nodes: "127.0.0.1:1980": 1 #END | http { access_log off; server { listen 1990; location / { proxy_pass http://127.0.0.1:1980; } } } |
| हार्डवेयर | CPU 1 CORE, 4GB RAM | CPU 1 CORE, 4GB RAM |
| CPU उपयोग दर | 100% | 100% |
परीक्षण वातावरण:
-
होस्ट: M1 Macbook Pro
-
ऑपरेटिंग सिस्टम: Debian

यदि आप इससे रुचि रखते हैं, तो इस परीक्षण को स्वयं दोहराने का प्रयास करना उचित होगा, जिसके परिणाम अपेक्षाकृत आसानी से प्राप्त किए जा सकते हैं।
तकनीकी अंतर्दृष्टि
APISIX द्वारा आधिकारिक रूप से जारी सॉफ्टवेयर आर्किटेक्चर डायग्राम के अनुसार, यह उम्मीद की जाती है कि APISIX का प्रदर्शन NGINX से कम होना चाहिए। हालांकि, "असामान्य घटनाएं अक्सर अंतर्निहित समस्याओं का संकेत देती हैं।" आइए NGINX स्ट्रेस टेस्टिंग के दौरान उत्पन्न होने वाले कुछ असामान्य परिदृश्यों का पता लगाएं।

सीधे मुद्दे पर आते हैं: APISIX के प्रदर्शन परिणाम अपेक्षित हैं, और NGINX के लिए भी यही सच है। हालांकि, यह पहचानना महत्वपूर्ण है कि APISIX के लिए परीक्षण परिदृश्य लंबे समय तक चलने वाले कनेक्शन के तहत QPS प्रदर्शन पर केंद्रित है, जबकि NGINX के लिए यह अल्पकालिक कनेक्शन है। इसलिए, QPS प्रदर्शन में अंतर उचित है।
लंबे समय तक चलने वाले कनेक्शन आमतौर पर निरंतर संचार की आवश्यकता वाले परिदृश्यों में उपयोग किए जाते हैं, जैसे कि रीयल-टाइम चैटिंग या निरंतर डेटा ट्रांसमिशन। दूसरी ओर, अल्पकालिक कनेक्शन अस्थायी संचार आवश्यकताओं के लिए उपयुक्त हैं, जैसे कि HTTP अनुरोध-प्रतिक्रिया मोड में सामान्य वेब पेज एक्सेस।

नीचे NGINX के लिए एक उचित कॉन्फ़िगरेशन उदाहरण दिया गया है। इस कॉन्फ़िगरेशन के साथ, आपको NGINX के सिंगल-कोर प्रदर्शन में महत्वपूर्ण सुधार दिखाई देगा, जो आमतौर पर कम से कम दोगुना होता है।

NGINX डिफ़ॉल्ट रूप से अल्पकालिक कनेक्शन का उपयोग क्यों करता है?
2004 में जन्मा NGINX ओपन-सोर्स परियोजनाओं में एक वरिष्ठ है, जो अपने दो दशक के करीब पहुंच रहा है। उपयोगकर्ताओं के निरंतर पुनरावृत्ति और एक सुसंगत अनुभव सुनिश्चित करने के लिए, NGINX की विशेषता विकास प्रक्रिया आगे की संगतता को प्राथमिकता देती है। यह इसे HTTP 1.0 प्रोटोकॉल का उपयोग करने वाली कुछ वेब प्रॉक्सी सेवाओं में से एक बनाता है। यह डिफ़ॉल्ट सेटिंग एक दशक से अधिक समय से बनी हुई है, और यह अनुमान लगाया जाता है कि NGINX इसे भविष्य में बदलने की संभावना नहीं है।
माइक्रोसर्विसेज, क्लाउड-नेटिव समाधान और AI सूचना के विस्फोट के युग में, इंजीनियर ऐसे सॉफ्टवेयर की तलाश करते हैं जो विश्वसनीय और परेशानी मुक्त हो, जिससे वे सीधे काम शुरू कर सकें। वे उत्पादन सर्वोत्तम प्रथाओं के साथ संरेखित डिफ़ॉल्ट कॉन्फ़िगरेशन की भी सराहना करते हैं। नतीजतन, आधुनिक ओपन-सोर्स सॉफ्टवेयर ऐतिहासिक बोझ को छोड़कर समस्याओं को कुशलता से हल करने पर ध्यान केंद्रित करता है, जिसके अपने फायदे और नुकसान हैं।

