paint-brush
प्रॉक्सी के साथ अपने एपीआई प्रदर्शन को सशक्त बनानाद्वारा@stdevk
353 रीडिंग
353 रीडिंग

प्रॉक्सी के साथ अपने एपीआई प्रदर्शन को सशक्त बनाना

द्वारा ST Dev 5m2023/06/29
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

संक्षेप में, एपीआई प्रदर्शन में सुधार से उपयोगकर्ता अनुभव में वृद्धि, उत्पादकता में वृद्धि, बेहतर स्केलेबिलिटी, लागत बचत और प्रतिस्पर्धात्मक लाभ हो सकता है, जिससे यह व्यवसायों और डेवलपर्स के लिए एक वांछनीय लक्ष्य बन सकता है। इसलिए, हम एपीआई गेटवे की बुनियादी संरचना के बारे में बताएंगे, Nginx के साथ RPC सेवाओं को रूट करने के लिए प्रॉक्सी कैसे सेट करें और ऐसा करने के फायदे और नुकसान पर चर्चा करेंगे।
featured image - प्रॉक्सी के साथ अपने एपीआई प्रदर्शन को सशक्त बनाना
ST Dev  HackerNoon profile picture
0-item
1-item
2-item

ऐसे कई ठोस कारण हैं जिनकी वजह से लोग एपीआई प्रदर्शन में सुधार करना चाहते हैं:

  1. उन्नत उपयोगकर्ता अनुभव: तेज़ और अधिक प्रतिक्रियाशील एपीआई ग्राहकों या अंतिम-उपयोगकर्ताओं के लिए एक सहज उपयोगकर्ता अनुभव प्रदान कर सकते हैं। बेहतर प्रदर्शन के परिणामस्वरूप विलंबता कम हो सकती है, तेज़ प्रतिक्रिया समय और त्वरित डेटा पुनर्प्राप्ति हो सकती है, जिससे उपयोगकर्ता अनुभव अधिक कुशल और संतोषजनक हो सकता है।
  2. बेहतर स्केलेबिलिटी: उच्च-प्रदर्शन सर्वर बड़ी संख्या में अनुरोधों और समवर्ती उपयोगकर्ताओं को संभाल सकते हैं, जिससे वे अधिक स्केलेबल बन जाते हैं। बढ़ते व्यवसायों के लिए स्केलेबिलिटी महत्वपूर्ण है, जिन्हें अपने उपयोगकर्ता आधार के विस्तार के साथ-साथ ट्रैफ़िक और डेटा की बढ़ती मात्रा को संभालने की आवश्यकता होती है। बेहतर एपीआई प्रदर्शन व्यवसायों को प्रतिक्रिया समय या सेवा की गुणवत्ता से समझौता किए बिना बढ़ती मांगों को पूरा करने में मदद कर सकता है।
  3. प्रतिस्पर्धात्मक लाभ: उच्च-प्रदर्शन एपीआई व्यवसायों को प्रतिस्पर्धात्मक बढ़त दे सकते हैं। उपयोगकर्ता या ग्राहक ऐसी सेवाओं को प्राथमिकता देते हैं जो तेज़ प्रतिक्रिया समय, बेहतर विश्वसनीयता और बेहतर समग्र प्रदर्शन प्रदान करती हैं। बेहतर एपीआई अनुभव प्रदान करके, व्यवसाय खुद को प्रतिस्पर्धियों से अलग कर सकते हैं और अधिक उपयोगकर्ताओं या ग्राहकों को आकर्षित कर सकते हैं।

ट्यूटोरियल सीखने का उद्देश्य

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

शर्त

MacOS (या Linux ) के लिए, अपने सिस्टम पर Homebrew इंस्टॉल करें।

मैक पर Nginx इंस्टॉल करना

MacOS पर Nginx इंस्टॉल करने के लिए निम्नलिखित चरण हैं:


1️⃣ होमब्रू डाउनलोड करें

MacOS पर Nginx इंस्टॉल करने के लिए, सिस्टम पर Homebrew इंस्टॉल होना चाहिए। होमब्रू मैक ऑपरेटिंग सिस्टम के लिए एक पैकेज मैनेजर है जो हमें विभिन्न यूनिक्स एप्लिकेशन आसानी से इंस्टॉल करने की अनुमति देता है। यदि आपके पास Homebrew नहीं है, तो इंस्टॉल करने के लिए निम्नलिखित लिंक का उपयोग करें: https://brew.sh/

या बस टर्मिनल पर निम्नलिखित कमांड टाइप करें:

 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"


2️⃣ Nginx इंस्टॉल करें

होमब्रू पैकेज इंस्टॉलर macOS पर Nginx वेब सर्वर को स्थापित करने में मदद करेगा। Nginx को स्थापित करने के लिए, निम्नलिखित कमांड का उपयोग करें:

 brew install nginx


3️⃣ कॉन्फ़िगरेशन फ़ाइल संपादित करें

डिफ़ॉल्ट रूप से, Nginx कॉन्फ़िगरेशन फ़ाइल का स्थान है:

 /opt/homebrew/etc/nginx/nginx.conf

Nginx कॉन्फ़िगरेशन फ़ाइल को संपादित करने के लिए, आप अपनी पसंद के किसी भी टेक्स्ट एडिटर का उपयोग कर सकते हैं। उदाहरण के लिए, आप nano , vim , या emacs का उपयोग कर सकते हैं। नैनो का उपयोग करके Nginx कॉन्फ़िगरेशन फ़ाइल को संपादित करने के लिए यहां एक उदाहरण कमांड दिया गया है:

 nano /opt/homebrew/etc/nginx/nginx.conf

हम पोर्ट 80 पर सुनने वाले सर्वर ब्लॉक का संपादन करेंगे।

सर्वर ब्लॉक खोजें


इसके बाद, नीचे दिए गए तीन एथेरियम मेननेट आरपीसी एंडपॉइंट को शामिल करने के लिए आगे बढ़ें:

 location /nodereal { proxy_pass https://eth-mainnet.nodereal.io/v1/<API KEY>; proxy_set_header Content-Type "application/json"; } location /RPCProviderA { proxy_pass <https URI endpoint>; proxy_set_header Content-Type "application/json"; } location /RPCProviderB { proxy_pass <https URI endpoint>; proxy_set_header Content-Type "application/json"; }

आवश्यकतानुसार एकाधिक आरपीसी एंडपॉइंट को शामिल करना और बाद में कॉन्फ़िगरेशन फ़ाइल को संरक्षित करना संभव है।

सिंटैक्स त्रुटियों की अनुपस्थिति सुनिश्चित करने के लिए, कृपया Nginx कॉन्फ़िगरेशन फ़ाइल के परीक्षण के साथ आगे बढ़ें:

 nginx -t

🎊 यदि कोई त्रुटि मौजूद नहीं है, तो निम्नलिखित परिणाम प्रदर्शित किया जाएगा।


nginx: कॉन्फ़िगरेशन फ़ाइल /opt/homebrew/etc/nginx/nginx.conf सिंटैक्स ठीक है

nginx: कॉन्फ़िगरेशन फ़ाइल /opt/homebrew/etc/nginx/nginx.conf परीक्षण सफल है

Nginx सर्वर को पुनरारंभ करने के लिए, कृपया निम्नलिखित कमांड निष्पादित करें:

 brew services restart nginx


4️⃣ Nginx प्रॉक्सी के माध्यम से एपीआई विधि भेजना

Nginx प्रॉक्सी का परीक्षण करने के लिए, हम eth_gasPrice के माध्यम से Ethereum पर गैस की कीमत की जाँच कर रहे हैं। हम नीचे देखे गए JSON पेलोड के साथ स्थानीय मशीन पर चल रहे सर्वर के "/nodereal" स्थान (" http://localhost " पर) पर HTTP POST अनुरोध भेजने के लिए एक कर्ल कमांड भेजेंगे:

 curl -X POST --data '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":1}' -H "Content-Type: application/json" http://localhost/nodereal


✅ {"jsonrpc":"2.0","id":1,"result":"0xdec36a8d1"}

कर्ल कमांड चलाने के बाद आपको जो प्रतिक्रिया मिली वह एथेरियम नोड से JSON-RPC प्रतिक्रिया है। यहां प्रतिक्रिया का संक्षिप्त विवरण दिया गया है:

  • "jsonrpc":"2.0": यह फ़ील्ड प्रतिक्रिया में प्रयुक्त JSON-RPC प्रोटोकॉल के संस्करण को इंगित करता है।
  • "आईडी":1: यह फ़ील्ड उस अनुरोध का पहचानकर्ता है जिससे यह प्रतिक्रिया मेल खाती है। इस मामले में, अनुरोध में 1. परिणाम ":"0xdec36a8d1" की "आईडी" थी: यह फ़ील्ड JSON-RPC अनुरोध का परिणाम है। इस मामले में, अनुरोधित परिणाम एथेरियम नेटवर्क पर वर्तमान गैस की कीमत थी, जो एक स्ट्रिंग के रूप में हेक्साडेसिमल प्रारूप में लौटाया जाता है।

"0xdec36a8d1" के दशमलव मान की व्याख्या करने के लिए

"0xdec36a8d1" का दशमलव मान 59797579985 है। इसलिए, अनुरोध किए जाने के समय एथेरियम नेटवर्क पर वर्तमान गैस की कीमत 59797579985 वेई (ईथर का सबसे छोटा मूल्यवर्ग) या 58 जीवीई थी।

स्थानीय मशीन (" http://localhost " पर) चलाकर शेष सर्वर, /RPCPproviderA और /RPCPproviderB के साथ इसका परीक्षण करें:

 curl -X POST --data '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":1}' -H "Content-Type: application/json" http://localhost/RPCProviderA


🥳 आप अपनी स्वयं की प्रॉक्सी का परीक्षण शुरू कर सकते हैं।


एपीआई गेटवे के लिए प्रॉक्सी के रूप में Nginx का उपयोग करने के फायदे और नुकसान


एपीआई गेटवे के लिए प्रॉक्सी के रूप में Nginx का उपयोग करने के लाभ:

  1. लोड संतुलन: Nginx कुशल लोड संतुलन और बेहतर प्रदर्शन सुनिश्चित करते हुए आने वाले एपीआई अनुरोधों को कई बैकएंड सर्वरों में वितरित कर सकता है।
  2. कैशिंग: Nginx एपीआई प्रतिक्रियाओं को कैश कर सकता है, बैकएंड सर्वर पर लोड को कम कर सकता है और एपीआई प्रतिक्रिया समय में सुधार कर सकता है।
  3. स्केलेबिलिटी: बढ़े हुए एपीआई ट्रैफ़िक को समायोजित करने और बड़ी संख्या में समवर्ती कनेक्शन को संभालने के लिए Nginx आसानी से क्षैतिज रूप से स्केल कर सकता है।
  4. सुरक्षा: Nginx विभिन्न सुरक्षा सुविधाएँ प्रदान करता है, जैसे SSL समाप्ति, DDoS सुरक्षा और अनुरोध फ़िल्टरिंग, जो API को सुरक्षा खतरों से बचाने में मदद करते हैं।


एपीआई गेटवे के लिए प्रॉक्सी के रूप में Nginx का उपयोग करने के नुकसान:

  1. सीमित एपीआई प्रबंधन सुविधाएँ: Nginx मुख्य रूप से एक प्रॉक्सी के रूप में कार्य करता है और इसमें कुछ उन्नत एपीआई प्रबंधन सुविधाओं का अभाव है, जैसे एपीआई दस्तावेज़, डेवलपर पोर्टल और एपीआई संस्करण, जो जटिल एपीआई पारिस्थितिकी तंत्र में आवश्यक हो सकते हैं।
  2. कॉन्फ़िगरेशन जटिलता: Nginx को API गेटवे के रूप में कॉन्फ़िगर करने के लिए Nginx कॉन्फ़िगरेशन की अच्छी समझ की आवश्यकता होती है, जो उन उपयोगकर्ताओं के लिए जटिल हो सकती है जो Nginx से परिचित नहीं हैं।
  3. उन्नत प्रमाणीकरण और प्राधिकरण का अभाव: Nginx बुनियादी प्रमाणीकरण और प्राधिकरण सुविधाएँ प्रदान करता है, लेकिन इसमें OAuth, JWT सत्यापन और बारीक पहुंच नियंत्रण जैसी उन्नत क्षमताएं नहीं हो सकती हैं, जिनकी कुछ एपीआई परिदृश्यों में आवश्यकता हो सकती है।

निष्कर्ष

अंत में, एपीआई प्रदर्शन में सुधार व्यवसायों और डेवलपर्स के लिए महत्वपूर्ण है। एपीआई गेटवे के लिए प्रॉक्सी के रूप में Nginx का उपयोग करने से लोड संतुलन, कैशिंग, स्केलेबिलिटी और सुरक्षा जैसे लाभ मिलते हैं। हालाँकि, सीमित एपीआई प्रबंधन सुविधाएँ, कॉन्फ़िगरेशन जटिलता और उन्नत प्रमाणीकरण और प्राधिकरण क्षमताओं की कमी जैसी सीमाएँ हैं। इन पक्ष-विपक्ष पर सावधानीपूर्वक विचार करना आवश्यक है। कुल मिलाकर, Nginx को प्रॉक्सी के रूप में उपयोग करना API प्रदर्शन को बेहतर बनाने के लिए एक शक्तिशाली उपकरण हो सकता है। अगली ट्यूटोरियल श्रृंखला के लिए बने रहें क्योंकि हम सामना की जाने वाली सामान्य समस्या और इसे कैसे डीबग करें, इसके बारे में अधिक जानकारी साझा करेंगे।


यहाँ भी प्रकाशित किया गया है.