इस लेख में मैं cPanel का उपयोग करके NamecheapâÃÂÃs साझा किए गए होस्टिंग सर्वर पर एक Node.js ऐप की मेजबानी को कवर करूंगा। मैं इस लेख में आपके वेब ऐप के लिए डेटाबेस सर्वर या रिएक्ट फ्रंट एंड की स्थापना पर चर्चा नहीं करूंगा। इसके बजाय मैं उन चुनौतियों पर ध्यान केंद्रित करना चाहता हूं जिनका सामना आप साझा होस्टिंग वातावरण में नोड ऐप चलाने में कर सकते हैं। == देरी न करें, आज ही मेज़बानी करें! == इससे पहले कि आप अपने वेब ऐप को विकसित करने के रास्ते में बहुत नीचे आ जाएं, एक स्थिर संस्करण को ऑनलाइन रखना एक अच्छा विचार है। यह आपके उत्पादन परिवेश में हो सकता है, या स्टेजिंग परिवेश में हो सकता है जो आपके उत्पादन परिवेश के समान है। अधिकांश लोग तब तक इंतजार करेंगे जब तक कि उनका ऐप ऑनलाइन होस्ट करने से पहले लगभग पूरा नहीं हो जाता à एक  ¢   और यह वही है जो मैंने अपना पहला रिएक्ट और नोड वेब ऐप विकसित करते समय किया था। हालाँकि, उस समय मेरे नोड एपीआई सर्वर को चलाने में बहुत सारी चुनौतियाँ थीं और मुझे अपने रिएक्ट ऐप में बहुत सारे बदलाव करने पड़े। यही कारण है कि मैं एक संस्करण को जल्दी ऑनलाइन डालने की सलाह देता हूं ताकि आप बहुत अधिक कोड लिखने से पहले समायोजन कर सकें। == एक साझा होस्टिंग सेवा का उपयोग करना == NamecheapâÃÂàके साझा होस्टिंग सर्वर अपाचे सर्वर को प्रबंधित करने के लिए नियंत्रण कक्ष इंटरफ़ेस के रूप में cPanel का उपयोग करते हैं। इन निर्देशों से उन लोगों को भी मदद मिलनी चाहिए जो cPanel के साथ A2 होस्टिंग और GoDaddy जैसी साझा होस्टिंग सेवा का उपयोग कर रहे हैं। मेरे पास एक SSL प्रमाणपत्र के साथ मेरा Namecheap सर्वर भी है और डिफ़ॉल्ट रूप से cPanel सभी HTTP ट्रैफ़िक को HTTPS पर रीडायरेक्ट करता है। इसलिए मेरे सर्वर का सारा ट्रैफ़िक सुरक्षित है। आपको VPS (वर्चुअल प्राइवेट सर्वर) होस्टिंग सेवा जैसे DigitalOcean पर नोड ऐप को होस्ट करने के तरीके के बारे में निर्देश देने वाले कई गाइड मिलेंगे। यदि आप बिलकुल नए सिरे से शुरू कर रहे हैं तो इस तरह की सेवा का उपयोग करके होस्टिंग करने से आपको अधिक नियंत्रण मिलेगा। लेकिन आमतौर पर यह शेयर्ड होस्टिंग से ज्यादा महंगा होता है। और मेरे मामले में मैंने Namecheap साझा होस्टिंग सेवा के लिए पहले ही भुगतान कर दिया था। सीपीनल और साझा होस्टिंग का उपयोग करने के कुछ फायदे: - एक साधारण वेब प्रबंधन कंसोल के साथ प्रबंधित - कॉन्फ़िगर करने में आसान - सस्ता, खासकर यदि आप पहले से ही एक साइट / डोमेन होस्ट कर रहे हैं - यदि आप विभिन्न तकनीकों की खोज कर रहे हैं, तो PHP, आदि जैसी अन्य तकनीकों का उपयोग करके आसानी से गतिशील वेबसाइटें स्थापित कर सकते हैं कुछ नुकसान: - कम à एक ¢      controlà ¢    क्योंकि आपके पास अंतर्निहित ऑपरेटिंग सिस्टम तक पहुंच नहीं है - स्केलेबल नहीं == सब कुछ कहाँ जाता है? == पहले आपको अपने नोड ऐप्स के लिए सभी स्रोत फ़ाइलों के लिए एक फ़ोल्डर बनाना होगा। मैंने /home/username निर्देशिका में à¢ÃÂÃÂnodejsâÃÂàनामक एक फ़ोल्डर बनाया और इस फ़ोल्डर के भीतर मैं प्रत्येक ऐप के लिए एक सबफ़ोल्डर बनाता हूं। अब अपनी सभी सोर्स फाइल्स को इस सबफोल्डर में अपलोड करें। सुनिश्चित करें कि आपने package.json फ़ाइल भी शामिल की है। आप ࢠÂÂÂt âÃÂÃÂnode_modulesâàफ़ोल्डर अपलोड नहीं करते हैं क्योंकि यह पैकेज प्रबंधक के साथ बनाया जाएगा बाद में। याद रखें कि हम अपने वेब ऐप आर्किटेक्चर उदाहरण में सिर्फ नोड एपीआई सर्वर की मेजबानी कर रहे हैं। हम नोड का उपयोग करके रिएक्ट ऐप को होस्ट नहीं करेंगे (अगले लेख में इस विषय पर अधिक)। httpsdavenewman.tech/wp-content/uploads/2020/06/Diagram-5_1.jpg फ़ोल्डर लेआउट /home/username/nodejs/mynodeapi फ़ोल्डर के तहत नोड स्रोत फ़ाइलों को दिखाता है और एक है /home/username/public_html/myapi फ़ोल्डर में .htaccess फ़ाइल == समस्या à एक  ¢   नोड ऐप canà  ¢  ÂÂt एक्सेस पोर्ट्स == मेरे नोड एपीआई ऐप को चलाने में सबसे बड़ी चुनौती थी। मुद्दा यह था कि NamecheapâÃÂàके समर्थन प्रलेखन में दिए गए नमूना कोड ने अभी काम नहीं किया! यह पोर्ट 80 पर सुनने के लिए एक httpserver और पोर्ट 443 पर एक http **s** सर्वर बनाने की कोशिश करता है। हालांकि, मुझे हमेशा यह कहते हुए एक EACCESS त्रुटि मिली कि मेरे पास अनुमति नहीं है उन बंदरगाहों का उपयोग करने के लिए। == समाधान à एक  ¢   नोड donà  ¢  ÂÂÂt बंदरगाह तक पहुँचने की जरूरत नहीं है! == आखिरकार मुझे Plesk, एक अन्य होस्टिंग कंट्रोल पैनल के बारे में एक सूत्र में उपयोगकर्ता SibProgrammer द्वारा एक टिप्पणी पढ़कर समाधान मिला। cPanel नोड ऐप्स को होस्ट करने के लिए फ़्यूज़न पैसेंजर एप्लिकेशन सर्वर का उपयोग करता है, जैसा कि Plesk करता है। सारांश: जब आप अपने ब्राउज़र से अनुरोध भेजते हैं तो यह अपाचे सर्वर पर जाता है, फिर फ़्यूज़न पैसेंजर और फिर आपके नोड ऐप पर जाता है। आपके नोड ऐप को पोर्ट के मालिक होने की आवश्यकता नहीं है क्योंकि इसे अपाचे और फ़्यूज़न पैसेंजर एप्लिकेशन सर्वर द्वारा आगे की ओर नियंत्रित किया जाता है। यह आपकी www.js (या app.js) फ़ाइल में httpserver बनाने के लिए कोड को सरल करता है: * www.js * Namecheap के लिए http सर्वर के निर्माण का परीक्षण। * डेव */ const http = आवश्यकता ('http http.createServer (फ़ंक्शन (अनुरोध, प्रतिक्रिया) { response.writeHead (200, {'Content-Type': 'text/html response.endh1>Hello Worldh1 सुनो (प्रक्रिया.env) .PORT); कंसोल.लॉग ('ऐप चल रहा है ध्यान देने योग्य कुछ बातें: - process.env.PORT पर सुनें (80 या 443 को मैन्युअल रूप से सेट करने के बजाय)। परीक्षण करते समय मैंने देखा कि process.env.PORT अपरिभाषित है! लेकिन दिलचस्प बात यह है कि इस मामले में कोई फर्क नहीं पड़ता। - http सर्वर का उपयोग करें भले ही आपके पास एसएसएल सेट अप हो। cPanel ने Apache को सभी HTTP ट्रैफ़िक को HTTPS पर पुनर्निर्देशित करने और परिणामस्वरूप HTTPS द्वारा सभी अनुरोधों का जवाब देने के लिए कॉन्फ़िगर किया है। आपको https सर्वर सेट अप करने और अपने SSL प्रमाणपत्रों को पढ़ने के लिए अपने नोड ऐप को मैन्युअल रूप से कॉन्फ़िगर करने की आवश्यकता नहीं है। == नोड एपीआई सर्वर के लिए अंतिम चरण == अब यह आपके नोड ऐप को सेट करने के लिए निर्देशों का पालन करने की अपेक्षाकृत सरल प्रक्रिया होनी चाहिए। httpsdavenewman.tech/wp-content/uploads/2020/06/Diagram-5_2.jpg cPanelâÃÂÃs Node.js कॉन्फ़िगरेशन पृष्ठ का स्क्रीनशॉट - Node.js और एप्लिकेशन मोड का उपयुक्त संस्करण चुनें (उत्पादन की अनुशंसा की जाती है)। - à एक  ¢     एप्लीकेशन रूट एक  ¢ एक  एक वह फ़ोल्डर होगा जहां आपने अपनी स्रोत फ़ाइलों को पहले अपलोड किया था (à एक  ¢ एक एक एक  उपरोक्त उदाहरण में nodejs/mynodeapiâÃÂÃÂ)। - à एक ¢     आवेदन URLà ¢   आपके एपीआई तक पहुंचने के लिए इस्तेमाल किया जाने वाला यूआरएल होगा उदाहरण में  ¢   )। इस बॉक्स में आप जो नाम देंगे उसका उपयोग आपके /home/username/public_html फ़ोल्डर में सबफ़ोल्डर बनाने के लिए किया जाएगा। यह नहीं करता है      the t को एक ही नाम के रूप में होना चाहिए, जैसा कि à                   फ़ोल्डर (लेकिन (लेकिन (लेकिन अक्सर होगा)। - à एक ¢     एप्लिकेशन स्टार्टअप फाइल एक  ¢   www.js या app.js होगा जो इस बात पर निर्भर करता है कि आपने अपना नोड ऐप कैसे बनाया है। - यह आप पर निर्भर करता है कि आप पैसेंजर लॉग फाइल को कैसे कॉन्फिगर करना चाहते हैं। - एक बार जब आप ऐप बना लेते हैं तो आप एनपीएम इंस्टाल चलाने के लिए बटन देखेंगे  ¢   । इसे चलाएं और यह आपके ऐप की जरूरत वाले सभी निर्भर मॉड्यूल के साथ âÃÂÃÂnode_modulesâÃÂà फ़ोल्डर बनाएगा। एक बार जब आप अपना नोड ऐप सेट कर लेते हैं और इसे शुरू कर देते हैं, तो यह आपके /home/public_html फ़ोल्डर में सबफ़ोल्डर बना देगा। अब आपको उस फ़ोल्डर में जाना होगा और .htaccess फ़ाइल को संपादित करना होगा और निम्न पंक्ति में जोड़ना होगा: पुनर्लेखन इंजन बंद यह अपाचे सर्वर को आपके एपीआई सर्वर पर जाने के लिए आवश्यक किसी भी अनुरोध को फिर से लिखने (या पुनर्निर्देशित करने) से रोकता है। और वह यह है! अब आपका नोड एपीआई ऐप चालू और चालू होना चाहिए और आपके एपीआई कॉल का जवाब देना चाहिए। == तो अगला क्या है? == अब जब हमने नोड एपीआई सर्वर स्थापित कर लिया है तो हम इस एपीआई सर्वर को इंगित करने के लिए अपने विकास के माहौल में अपने रिएक्ट फ्रंट एंड को बदल सकते हैं। या हम अपने एपीआई कॉल का परीक्षण करने के लिए पोस्टमैन का उपयोग कर सकते हैं। अगले लेख में हम Namecheap और cPanel पर React ऐप को होस्ट करने पर विचार करेंगे।