Ubuntu 16.04 LTS पर Koa.js नोड एप्लिकेशन को कैसे सेट करें

इस ट्यूटोरियल में, हम सीखेंगे कि उत्पादन के लिए Koa.js वेब एप्लिकेशन कैसे सेट करें, Node.js. का उपयोग करें। हम अपाचे का उपयोग करके एक रिवर्स डोमेन के साथ एक नमूना डोमेन को भी लिंक कर रहे हैं, और यह सीखेंगे कि इसे एक उचित प्रक्रिया प्रबंधक के साथ कैसे प्रबंधित किया जाए। आगे की हलचल के बिना, चलो शुरू करते हैं।

Node.js, Koa.js और Apache का संक्षिप्त विवरण

Node.js क्रोम के V8 इंजन पर आधारित एक तेज़, क्रॉस-प्लेटफ़ॉर्म जावास्क्रिप्ट फ्रेमवर्क है। यह डेस्कटॉप और सर्वर अनुप्रयोगों दोनों में उपयोग किया जाता है और अपने सिंगल-थ्रेडेड इवेंट लूप हैंडलिंग के लिए प्रसिद्ध है। Node.js ने Node Package Manager (NPM) नामक एक पैकेज रजिस्ट्री की सुविधा दी है, जो आधा मिलियन से अधिक पैकेज होस्ट करती है। NPM पैकेज (या मॉड्यूल) Node.js की मुख्य रीढ़ हैं, क्योंकि वे समुदाय-संचालित कोड हैं जो आपके Node.js एप्लिकेशन में उपयोगी हो सकते हैं। हमारे Koa.js ऐप में, Node.js इसके कार्य का मुख्य हिस्सा है।

Koa.js एक न्यूनतम वेब फ्रेमवर्क है, जिसे Node.js प्लेटफ़ॉर्म पर बनाया गया है। लोकप्रिय Express.js फ्रेमवर्क के पीछे एक ही टीम द्वारा बनाया गया, इसका लक्ष्य अपने कोर से मिडलवेयर को छोड़कर पहले से ही न्यूनतर Express.js ढांचे को कम से कम करना है। Koa.js की एक प्रमुख विशेषता यह है कि कॉलबैक नहीं हैं। Koa.js को ES6- आधारित जनरेटर और ES6 सुविधाओं, जैसे वादे पर बनाया गया है।

अपाचे एक लोकप्रिय ओपन-सोर्स वेब सर्वर है, जिसका उपयोग वेब सर्वर के लिए एक बहुत ही शुरुआती बिंदु के रूप में किया जाता है। इस ट्यूटोरियल में, हम अपाचे को एक रिवर्स प्रॉक्सी के रूप में उपयोग कर रहे हैं, जो हमें अपने एप्लिकेशन को एक नमूना डोमेन से लिंक करने की अनुमति देगा। यदि आपके पास एक डोमेन नहीं है, तो यह ट्यूटोरियल आपके लिए अभी भी काम करेगा, एकमात्र अंतर यह है कि वेबसाइट एक डोमेन के बजाय आपके वीपीएस आईपी पर चलेगी।

Node.js की स्थापना

किसी भी Node.js ढांचे के साथ के रूप में, आपको अपने VPS पर Node.js स्थापित करने की आवश्यकता होगी। इस ट्यूटोरियल के लिए, मैं मानूंगा कि आपके पास पहले से ही आपके सिस्टम पर Node.js स्थापित है। यदि नहीं, तो आप बस यहां दिए गए निर्देशों का पालन ​​कर सकते हैं

हमारे आवेदन निर्देशिका की स्थापना

हमें एक फ़ोल्डर बनाने की आवश्यकता होगी, जिसमें हमारे एप्लिकेशन की मुख्य फाइलें होंगी।

mkdir site

siteनिर्देशिका के लिए किसी अन्य नाम के साथ बदलने के लिए स्वतंत्र महसूस करें । इसके बाद, हमें अपनी Node.js पैकेज फ़ाइल को इनिशियलाइज़ करना होगा। आपके द्वारा अभी-अभी बनाई गई निर्देशिका में बदलें, और चलाएं npm initऔर संकेतों को पूरा करें। अंत में, यह कुछ इस तरह दिखना चाहिए:

{
  "name": "site",
  "version": "1.0.0",
  "description": "Koa.js Site",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "yourname",
  "license": "ISC"
}

Koa.js स्थापित करना

अब जब हमारे पास हमारी निर्देशिका स्थापित हो गई है, हम Koa.js. स्थापित करने के लिए आगे बढ़ सकते हैं वर्तमान कार्य निर्देशिका में, /siteनिम्न लिखें।

npm install koa

यह एनपीएम से कोआज मॉड्यूल डाउनलोड करेगा और भविष्य में उपयोग के लिए हमारी परियोजना निर्देशिका में स्थापित करेगा। इसके बाद, हम अपना नमूना एप्लिकेशन फ़ाइल बनाएंगे जो हमारा ऐप कोड रखेगा। ऐसा करने के लिए, एक index.jsफ़ाइल बनाएं ।

nano index.js

एक बार फ़ाइल के अंदर, एक नमूना एप्लिकेशन बनाएं।

const Koa = require('koa');
const app = new Koa();

app.use(async ctx => {
     ctx.body = 'Hello World';
 });

app.listen(3000);
console.log('Website is live!')

फ़ाइल को सहेजें और बंद करें। CTRL+ X

हम यह सुनिश्चित करना चाहेंगे कि हमारा आवेदन ठीक से चले। इसे शुरू करने के लिए, चलाएं node index.js, और आप Website is liveकंसोल में देखेंगे ।

अपाचे स्थापित करना

अब जब हम जानते हैं कि हमारी वेबसाइट कार्यात्मक है, तो हम अपाचे और इसकी निर्भरता स्थापित करने के लिए आगे बढ़ सकते हैं।

sudo apt install -y libapache2-mod-proxy-html libxml2-dev

अपाचे में पाए जाने वाले रिवर्स प्रॉक्सी फीचर का उपयोग करने के लिए, हमें आवश्यक मॉड्यूल को सक्षम करना होगा।

a2enmod proxy
a2enmod proxy_http
a2enmod proxy_ajp
a2enmod rewrite
a2enmod deflate
a2enmod headers
a2enmod proxy_balancer
a2enmod proxy_connect
a2enmod proxy_html

इनमें से कुछ मॉड्यूल पहले से ही सक्षम हो सकते हैं, लेकिन उन्हें डबल-चेक करना हमेशा अच्छा होता है।

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

sudo nano /etc/apache2/sites-enabled/000-default.conf

यहां, हमें अपने आवेदन के लिए एक ब्लॉक जोड़ना होगा।

<VirtualHost *:*>
    ProxyPreserveHost On
    ProxyPass / http://0.0.0.0:3000/
    ProxyPassReverse / http://0.0.0.0:3000

    ServerName localhost
</VirtualHost>

फ़ाइल सहेजें, CTRL+ X

आप देख सकते हैं कि हम 3000अपने ProxyPassऔर ProxyPassReverseआईपी ​​के लिए पोर्ट के रूप में पोर्ट का उपयोग कर रहे हैं । चूँकि यह वही पोर्ट है जिस पर हम अपने Koa.js एप्लिकेशन को चला रहे हैं, यह अत्यावश्यक है कि हम सही पोर्ट को इनपुट करें।

एक बार परिवर्तन होने के बाद, हमें Apache को फिर से शुरू करना होगा और हमारे Ko.js एप्लिकेशन को फिर से लॉन्च करना होगा।

sudo systemctl restart apache2

यह सुनिश्चित करेगा कि जब हम हमारे Koa.js एप्लिकेशन को शुरू करेंगे तो हमारी कॉन्फ़िगरेशन फ़ाइल सक्रिय और काम करने के लिए तैयार है। एक बार अपाचे को फिर से शुरू करने के बाद, अपनी साइट निर्देशिका पर वापस जाएँ, और Koa.js एप्लिकेशन को शुरू करें जैसे हमने पहले किया था। अपने वेब ब्राउज़र से, नेविगेट करें http://yourdomainया http://yourip:, और आप "हैलो वर्ल्ड" देखेंगे।

Systemd के साथ हमारे एप्लिकेशन को प्रबंधित करना

अब जब हमने एक नमूना Koa.js एप्लिकेशन बनाने की मूल बातें कवर कर ली हैं, तो हमें एहसास होता है कि उत्पादन परिवेश में, एप्लिकेशन को शुरू करना जैसा कि हम अब अव्यावहारिक है। एक प्रक्रिया प्रबंधक निश्चित रूप से एक आवश्यकता है। यहीं सिस्टमड प्ले में आता है। सरल शब्दों में, सिस्टमड में एक सॉफ्टवेयर होता है जो लिनक्स सिस्टम के लिए बिल्डिंग ब्लॉक प्रदान करता है। "इनिट" के समान, यह सिस्टम स्टार्टअप के बाद उपयोगकर्ता प्रक्रियाओं का प्रबंधन करने के लिए एक प्रणाली प्रदान करता है। हमारे आवेदन के मामले में, सिस्टम रिबूट होने के बाद सिस्टमड हमें अपनी वेबसाइट को स्वचालित रूप से शुरू करने की अनुमति देता है, अगर ऐसी कोई घटना होती है जो सिस्टम अपटाइम को बाधित करती है। यह हमारे एप्लिकेशन को प्रबंधित करते समय काम आने वाले उपकरणों का एक सेट भी प्रदान करता है। सबसे अच्छी बात यह है कि यह Ubuntu 16.04 LTS में बनाया गया है, इसलिए हमें कोई अतिरिक्त सॉफ़्टवेयर स्थापित करने की आवश्यकता नहीं है।

Systemd सेवा बनाएँ

हमारे आवेदन को शुरू करने के लिए हमें जो कुछ भी चाहिए उसे एक फ़ाइल में समाहित किया जाएगा service। यह हमारे ऐप के बारे में विवरण रखता है, जैसे इसका नाम, निर्देशिका, पर्यावरण और बहुत कुछ। हमारी सिस्टम फ़ाइल बनाने के लिए, एक टेक्स्ट एडिटर खोलें।

sudo nano /lib/systemd/system/site.service

फ़ाइल को इस तरह संपादित करें और सहेजें।

[Unit]
Description=desc here
Documentation=https://example.com
After=network.target

[Service]
Environment=NODE_PORT=3000
Type=simple
User=youruser
ExecStart=/usr/bin/node /home/[youruser]/site/index.js
Restart=on-failure

[Install]
WantedBy=multi-user.target

youruserअपने सर्वर के उपयोगकर्ता नाम से बदलें । यहाँ महत्वपूर्ण क्षेत्रों की एक त्वरित ठहरनेवाला है:

  • After - यह हमारे एप्लिकेशन को शुरू करने से पहले नेटवर्क इंटरफेस तैयार होने तक इंतजार करने के लिए सिस्टम को सूचित करता है।
  • Environment- यहां हम अपने एप्लिकेशन के लिए पर्यावरण चर निर्दिष्ट कर सकते हैं। हमारा Node.js पोर्ट उनमें से एक है।
  • Type - यह सिस्टम को सूचित करता है कि हमारे ऐप को उपयोगकर्ता विशेषाधिकार और इस तरह के बिना, बस शुरू किया जा सकता है।
  • User- यह सिस्टमड बताता है कि हम अपने उपयोगकर्ता खाते के तहत आवेदन चलाना चाहते हैं, जिसे अनुशंसित किया गया है। रूट उपयोगकर्ता के रूप में चल रहे एप्लिकेशन कई सुरक्षा समझौता कर सकते हैं।
  • ExecStart - अनिवार्य रूप से कमांड जो सिस्टमड हमारे एप्लिकेशन को शुरू करने के लिए चल रहा है, उसी तरह जैसे हमने इसे मैन्युअल रूप से पहले शुरू किया था।
  • Restart- हमारे आवेदन को पुनः आरंभ करने के लिए किन परिस्थितियों में सिस्टमड बताता है। इस स्थिति में, हम चाहते हैं कि त्रुटि के मामले में हमारी वेबसाइट पुनः आरंभ हो।

Systemd सेवा प्रारंभ करें

अब हम अपनी सिस्टमड सेवा शुरू करने के लिए तैयार हैं।

sudo systemctl daemon-reload

जब भी सिस्टमड सर्विस फ़ाइल में कोई नया बदलाव दर्ज करने के लिए सिस्टमड सर्विस फाइल में बदलाव होता है तो यह आवश्यक है।

फिर, अपना आवेदन शुरू करें।

sudo systemctl start site

अपने ब्राउज़र में साइट पर एक बार फिर से नेविगेट करें, यह सत्यापित करने के लिए कि सब कुछ काम कर रहा है।

प्रमुख systemd प्रबंध कार्य

  • stop - पूरी तरह से आवेदन बंद कर देता है।
  • restart - आवेदन को रोकता है, और एक नई प्रक्रिया के तहत इसे फिर से शुरू करता है।
  • enable - जब भी आप अपना कंप्यूटर शुरू करते हैं तो एप्लिकेशन को शुरू करने के लिए सिस्टमड बताता है।
  • status - वर्तमान में चल रहे एप्लिकेशन, जैसे अपटाइम, एप्लिकेशन स्टेट और बहुत कुछ के बारे में जानकारी दिखाता है।

इनमें से किसी भी फ़ंक्शन का उपयोग करने के लिए, निम्नलिखित चलाएं।

systemctl <function> site

निष्कर्ष

हमने सफलतापूर्वक एक Ko.js एप्लिकेशन सेट किया है और प्रॉक्सी को रिवर्स करने का तरीका सीखा है, साथ ही इसे सिस्टमड के साथ प्रबंधित किया है। अब आप अपने आवेदन का विस्तार करने और इस उदाहरण पर निर्माण करने के लिए तैयार हैं। यदि आप Koa.js के बारे में और अधिक जानकारी प्राप्त करना चाहते हैं, और अधिक उपयोगी जानकारी के लिए आप उनकी वेबसाइट पर जा सकते हैं । इसके अलावा, आप, systemd की प्रक्रिया प्रबंधक बारे में अधिक जानने के लिए यह दस्तावेज़ पढ़ें करना चाहते हैं तो यहां । अंत में, यदि आप अपाचे के रिवर्स प्रॉक्सी के बारे में अधिक जानना चाहते हैं, तो बेझिझक उन्हें यहां देखें



Leave a Comment

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

LiteCart PHP, jQuery और HTML में लिखा गया एक स्वतंत्र और ओपन सोर्स शॉपिंग कार्ट प्लेटफॉर्म है। यह ई-कॉमर्स सॉफ्टवेअर का उपयोग करने के लिए एक सरल, हल���का और आसान है

डेबियन पर सेटअप NFS शेयर

डेबियन पर सेटअप NFS शेयर

एनएफएस एक नेटवर्क-आधारित फाइल सिस्टम है जो कंप्यूटरों को कंप्यूटर नेटवर्क पर फाइलों तक पहुंचने की अनुमति देता है। यह मार्गदर्शिका बताती है कि आप एनएफ पर फ़ोल्डर्स को कैसे उजागर कर सकते हैं

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

एक अलग प्रणाली का उपयोग? माटोमो (पूर्व में पिविक) एक ओपन सोर्स एनालिटिक्स प्लेटफॉर्म है, जो गूगल एनालिटिक्स का एक खुला विकल्प है। Matomo स्रोत को होस्ट किया गया है

Linux पर एक TeamTalk Server सेटअप करें

Linux पर एक TeamTalk Server सेटअप करें

टीमटॉक एक कॉन्फ्रेंसिंग प्रणाली है जो उपयोगकर्ताओं को उच्च-गुणवत्ता वाले ऑडियो / वीडियो वार्तालाप, टेक्स्ट चैट, स्थानांतरण फ़ाइलें और स्क्रीन साझा करने की अनुमति देती है। यह मैं

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

परिचय यह आलेख बताएगा कि विंडोज सर्वर 2012 पर गारस मोड सर्वर को कैसे डाउनलोड और इंस्टॉल किया जाए। यह गाइड गहराई में होने के लिए बनाया गया है।

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

एक अलग प्रणाली का उपयोग? परिचय CyberPanel बाजार पर पहला नियंत्रण पैनल है जो दोनों खुला स्रोत है और OpenLiteSpeed ​​का उपयोग करता है। क्या थी?

CentOS पर FFmpeg कैसे स्थापित करें

CentOS पर FFmpeg कैसे स्थापित करें

FFmpeg ऑडियो और वीडियो रिकॉर्ड करने, कन्वर्ट करने और स्ट्रीम करने के लिए एक लोकप्रिय ओपन सोर्स समाधान है, जो सभी प्रकार की ऑनलाइन स्ट्रीमिंग सेवाओं में व्यापक रूप से उपयोग किया जाता है। मैं

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

एलयूकेएस (लिनक्स यूनिफाइड की सेटअप) लिनक्स के लिए उपलब्ध विभिन्न डिस्क एन्क्रिप्शन प्रारूपों में से एक है जो प्लेटफॉर्म एग्नॉस्टिक है। यह ट्यूटोरियल आपको बुद्धि प्रदान करेगा

अपने Vultr VPS को कैसे एक्सेस करें

अपने Vultr VPS को कैसे एक्सेस करें

Vultr अपने VPS को कॉन्फ़िगर करने, स्थापित करने और उपयोग करने के लिए कई अलग-अलग तरीके प्रदान करता है। क्रेडेंशियल एक्सेस करें आपके VPS के लिए डिफ़ॉल्ट एक्सेस क्रेडेंशियल ar

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

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