Ubuntu 16.04 पर Nginx रिवर्स प्रॉक्सी का उपयोग करके एक Keystone.js सर्वर सेट करें

इस ट्यूटोरियल में, हम रिवर्स प्रॉक्सी के साथ एक वेब सर्वर स्थापित करेंगे। हम जिस CMS का उपयोग कर रहे हैं, वह Keystone.js है, जो Express.js के आधार पर एक प्रसिद्ध वेब एप्लिकेशन फ्रेमवर्क है। हम जिस रिवर्स प्रॉक्सी का उपयोग कर रहे हैं, वह Nginx है, जो एक स्वतंत्र और ओपन-सोर्स रिवर्स प्रॉक्सी है, साथ ही एक HTTP सर्वर भी है। हम जिस डेटाबेस का उपयोग कर रहे हैं वह MongoDB है, एक NoSQL दस्तावेज़ डेटाबेस। इसके लिए आवश्यक होगा कि आपके पास एक डोमेन हो जिसका रिकॉर्ड सेट किया गया हो। यदि आपके पास वह सेट नहीं है, तो आगे बढ़ें और उस पर ध्यान दें और इस ट्यूटोरियल पर वापस आएं।

नोड स्थापित करना

सबसे पहले, हम Node.js स्थापित करेंगे, जो क्रोम V8 जावास्क्रिप्ट इंजन पर आधारित एक जावास्क्रिप्ट इंटरप्रेटर है।

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo apt-get install -y build-essential

Nginx स्थापित करना

अगला, हम अपने रिवर्स प्रॉक्सी को Nginx स्थापित करेंगे।

sudo apt update
sudo apt install nginx

यह संकुल सूचियों को अद्यतन करेगा, और Nginx को स्थापित करेगा। एक बार इंस्टॉलेशन हो जाने के बाद, हम अपना नोड प्रोजेक्ट सेटअप करेंगे।

हमारी कीस्टोन परियोजना की शुरुआत

हमारी नोड परियोजना बनाएँ। ऐसा करने के लिए, बस एक नया फ़ोल्डर बनाएं।

mkdir website

फिर, हम अपनी package.jsonफाइल बनाएंगे । ऐसा करने के लिए, बस npm initअपने टर्मिनल में दौड़ें , खेतों को भरें, और yesपुष्टि करने के लिए " " उत्तर दें । एक बार जब आप package.jsonफ़ाइल बना लेते हैं, तो हम निम्नलिखित नोड मॉड्यूल स्थापित करेंगे।

sudo npm install -g generator-keystone
sudo npm install -g yo

एक बार डाउनलोड करने के बाद, निम्नलिखित चलाएं।

yo keystone

आवश्यक फ़ील्ड भरें। यह के लिए पूछेंगे project name, template engine, emailनियंत्रण कक्ष के लिए, और पर इतना। यदि आप नहीं जानते कि क्या चुनना है, तो चूक ठीक हो जाएगी। आपके द्वारा अपने कीस्टोन सेटअप को कॉन्फ़िगर करने के बाद, हम यह देखने के लिए परीक्षण कर सकते हैं कि हमारा सर्वर node keystoneआपके आवेदन को शुरू करने के लिए टाइप करके चल रहा है या नहीं । डिफ़ॉल्ट रूप से, आपका एप्लिकेशन localhostपोर्ट पर , चालू रहेगा 3000। ध्यान दें कि यदि आपके पास MongoDB स्थापित नहीं है, तो तुरंत आपके लिए एक डेटाबेस उपलब्ध नहीं होगा। आप इसे बाद में ट्यूटोरियल में कैसे इंस्टॉल करना सीख सकते हैं।

यहाँ Keystone.js के लिए मूल निर्देशिका लेआउट है:

  • /lib - यह वह जगह है जहां आप अपने कस्टम पुस्तकालयों, और अन्य कोड को स्टोर करेंगे।

  • /models- यह वह जगह है जहां आप अपने एप्लिकेशन के डेटाबेस मॉडल स्टोर करेंगे। KeystoneJS एक डेटाबेस प्रदाता के रूप में MongoDB का उपयोग करता है।

  • /public - यह वह जगह है जहां आपकी स्थिर फाइलें (सीएसएस, जेएस, छवियां, और इसी तरह) संग्रहीत की जाएंगी।

  • /routes/api - यह वह जगह है जहां आपके एप्लिकेशन के एपीआई नियंत्रकों को संग्रहीत किया जाएगा।

  • /routes.views - एप्लिकेशन व्यू कंट्रोलर्स को यहां स्टोर किया जाएगा।

  • /templates - यह वह जगह है जहां आपके एप्लिकेशन की सभी टेम्पलेट फ़ाइलें संग्रहीत की जाएंगी।

  • /updates - यह वह जगह है जहां आपकी माइग्रेशन स्क्रिप्ट संग्रहीत की जाएंगी।

  • package.json - यह आपकी npm कॉन्फ़िगरेशन फ़ाइल है जो हमारे लिए जनरेटर उत्पन्न करता है।

  • keystone.js - हमारी मुख्य आरंभिक फ़ाइल, हम वेबसाइट चलाते समय इसे चलाते हैं।

हमारे डेटाबेस को प्रारंभ करना

जैसा कि पहले उल्लेख किया गया है, हमारा डेटाबेस जो हम उपयोग कर रहे हैं, वह MongoDB है, जो एक विश्वसनीय NoSQL, दस्तावेज़-उन्मुख डेटाबेस है। यदि आपके पास पहले से ही MongoDB स्थापित है, तो आप इस अनुभाग को छोड़ सकते हैं। यदि नहीं, तो यहाँ Ubuntu 16.04 पर इसे कैसे स्थापित किया जाए।

MongoDB पैकेज के लिए उपयोग की जाने वाली सार्वजनिक कुंजी आयात करें।

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

पैकेज स्थापित करने के लिए उपयोग की जाने वाली सूची फ़ाइल बनाएँ।

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

अपनी संकुल सूचियों का उपयोग करके अद्यतन करें apt

sudo apt update

अंत में, MongoDB स्थापित करें।

sudo apt install mongodb-org -y

जब यह इंस्टॉलेशन समाप्त हो जाए, तो MongoDB शुरू करें।

sudo service mongod start

यह पोर्ट पर MongoDB प्रक्रिया शुरू करेगा 27017

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

PM2 को स्थापित करना

अब यह पीएम 2 (प्रोसेस मैनेजर 2.) को स्थापित करने का समय है। पीएम 2 एक एनपीएम मॉड्यूल के रूप में नोड.जेएस अनुप्रयोगों के लिए एक प्रक्रिया प्रबंधक है। यह आपके लिए आपके एप्लिकेशन को प्रबंधित करने और उन्हें पृष्ठभूमि में चलाने का एक आसान तरीका प्रदान करता है। क्योंकि यह एनपीएम में है, इसे स्थापित करने के लिए हमें बस इतना करना होगा।

sudo npm install pm2 -g

यह npm को इसे विश्व स्तर पर स्थापित करने के लिए कहता है, इसलिए हम इसे अपने सिस्टम में कहीं भी उपयोग कर सकते हैं।

PM2 पर किसी एप्लिकेशन को चलाना / प्रबंधित करना

इससे पहले, हमने अपना वेब एप्लिकेशन साथ चलाया node keystone। PM2 के साथ, यह थोड़ा अलग है। अब हम निम्नलिखित के साथ अपना नोड ऐप चलाते हैं।

pm2 start keystone.js

यह हमारी प्रक्रिया सूची में हमारे PM2 एप्लिकेशन को जोड़ देगा, और एक छोटा बॉक्स प्रदर्शित किया जाएगा ताकि आप देख सकें कि यह वास्तव में ऑनलाइन है। idअपनी प्रक्रिया के लिए लेबल किए गए बॉक्स पर ध्यान दें । इसे पास ही रखें, क्योंकि हम बाद में इस पर कई संदर्भ देंगे।

अपने आवेदन के लिए लॉग देखने के लिए।

pm2 logs [id]

उदाहरण के लिए, pm2 logs 0यदि यह आपका पहला PM2 अनुप्रयोग है।

किसी भी समय अपने वेब एप्लिकेशन को रोकने के लिए।

pm2 stop [id]

अपने एप्लिकेशन को पूरी तरह से हटाने के लिए।

pm2 delete [id]

PM2 में एक मॉनिटरिंग डैशबोर्ड भी है यदि आप अपने एप्लिकेशन के लिए कुछ बुनियादी आँकड़े देखना चाहते हैं, और आप इसे इसके साथ एक्सेस कर सकते हैं।

pm2 monit

यह कुछ मूलभूत जानकारी जैसे RAM उपयोग, CPU उपयोग और अपटाइम दिखाएगा।

एक शानदार फीचर जो पीएम 2 ऑफर है watching। संक्षेप में, देखना यह है कि जब पीएम 2 ऑटो अपनी स्टार्ट फाइल के रूप में एक ही डायरेक्टरी में किसी भी फाइल में बदलाव करता है, और यह स्वचालित रूप से आपके एप्लिकेशन को पुनरारंभ कर देगा। इसे सक्षम करने के लिए, बस अपने एप्लिकेशन को पुनरारंभ करें, लेकिन इसे एक ध्वज ध्वज पास करें।

pm2 restart [id] --watch

सक्षम होने के बाद देखने को अक्षम करने के लिए, बस उसी कमांड को फिर से चलाएं, और देखना अक्षम हो जाएगा।

इस ट्यूटोरियल में, हम देखना बंद कर देंगे।

अपने रिवर्स प्रॉक्सी को सेट करना

सुनिश्चित करें कि आपके पास Nginx स्थापित है। यदि किसी कारण से यह नहीं है, तो ऊपर दिए गए चरणों का संदर्भ लें।

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

sudo ufw allow 'Nginx HTTP'

सत्यापित करें कि आपका Nginx सर्वर चल रहा है।

systemctl status nginx

Activeअनुभाग के तहत , यदि आप देखते हैं active (running), तो आप सभी सेट हैं। यदि नहीं, तो आप सेवा को पुनः आरंभ करने का प्रयास कर सकते हैं।

systemctl restart nginx

डिफ़ॉल्ट Nginx कॉन्फ़िगरेशन फ़ाइल को हटाएँ।

sudo rm /etc/nginx/sites-available/default

एक नया बनाएं, और बस इसे कॉल करें node

sudo nano /etc/nginx/sites-available/node

फ़ाइल में निम्नलिखित पेस्ट करें, और example.comअपने वेबसाइट डोमेन के साथ बदलें ।

listen 80;

server_name example.com;

    location / {

        proxy_set_header   X-Forwarded-For $remote_addr;

        proxy_set_header   Host $http_host;

        proxy_pass         "http://127.0.0.1:3000";
    }
}

ध्यान दें कि proxy_passआईपी ​​हमारे कीस्टोन एप्लिकेशन को दर्शाता है जो स्थानीय रूप से चल रहा है, जो localhostपोर्ट पर है 3000listen 80वह पोर्ट है जिसे हम चाहते हैं कि ऐप को निर्देशित किया जाए, जो इस मामले में पोर्ट है 80

फिर, हमें एक फ़ोल्डर के लिए एक सिमलिंक, या प्रतीकात्मक लिंक बनाने की आवश्यकता है sites-enabled। के बीच का अंतर sites-enabledऔर sites-availableहै कि है sites-enabledवास्तव में Nginx से भरी हुई है।

sudo ln -s /etc/nginx/sites-available/node /etc/nginx/sites-enabled/node

अब आपकी कॉन्फ़िगरेशन फ़ाइल sites-availableउपयोग के लिए तैयार हो जाएगी, और इसे लोड किया जाएगा sites-enabled। कॉन्फ़िगरेशन लागू करने के लिए यह प्रभावी होता है, बस Nginx को पुनरारंभ करें।

sudo systemctl restart nginx

अंत में, अपने PM2 आवेदन को पुनः आरंभ करें

pm2 restart [id]

अब आप एक ब्राउज़र में अपने डोमेन पर नेविगेट कर सकते हैं, और आपको Welcome to Keystoneलॉग इन करने के लिए एक पैनल के साथ एक स्क्रीन दिखाई देगी ।

यदि आप इसे देखते हैं, तो आपने सफलतापूर्वक एक Node.js उत्पादन वेब सर्वर सेट किया है। यदि नहीं, तो आपने गलत तरीके से एक कदम उठाया हो सकता है, और आप वापस जाना चाहते हैं और प्रत्येक चरण का सावधानीपूर्वक पालन कर सकते हैं।

आप उनकी वेबसाइट पर जाकर Nginx के बारे में अधिक जान सकते हैं ।

मुझे आशा है कि आपने इस ट्यूटोरियल का आनंद लिया है, और मुझे उम्मीद है कि इसने आपके Vultr VPS पर उत्पादन के लिए अपना स्वयं का वेब सर्वर स्थापित करने में मदद की है।

एक टिप्पणी छोड़ें

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 फ्रेमवर्क पर आधारित है। एक सुरुचिपूर्ण इंटरफ़ेस और एक संक्षिप्त मॉड्यूलर वास्तुकला के साथ