নোডেজ অ্যাপের জন্য কীভাবে এনগিনেক্সকে বিপরীত প্রক্সি হিসাবে কনফিগার করবেন


নোডেজ হ'ল একটি মুক্ত ওপেন সোর্স, লাইটওয়েট, স্কেলেবল এবং দক্ষ জাভাস্ক্রিপ্ট ফ্রেমওয়ার্ক যা ক্রোমের ভি 8 জাভাস্ক্রিপ্ট ইঞ্জিনে নির্মিত এবং ইভেন্ট-চালিত, অ-ব্লকিং আই/ও মডেল ব্যবহার করে। নোডেজ এখন সর্বত্রই রয়েছে এবং ওয়েবসাইট, ওয়েব অ্যাপ্লিকেশন থেকে নেটওয়ার্ক অ্যাপ্লিকেশন এবং আরও অনেক কিছুতে সফ্টওয়্যার বিকাশের জন্য এটি জনপ্রিয় হয়ে উঠেছে।

এনগিনেক্স একটি ওপেন সোর্স, উচ্চ-কার্যকারিতা এইচটিটিপি সার্ভার, লোড ব্যালেন্সার এবং বিপরীত প্রক্সি সফ্টওয়্যার। এটির কনফিগার করা সহজ করার জন্য এটি একটি সরল কনফিগারেশন ভাষা রয়েছে। এই নিবন্ধে, আমরা দেখাব যে কীভাবে নডিজ অ্যাপ্লিকেশনগুলির জন্য বিপরীত প্রক্সি হিসাবে Nginx কনফিগার করতে হয়।

দ্রষ্টব্য: যদি আপনার সিস্টেমটি ইতিমধ্যে নোডেজ এবং এনপিএম নিয়ে চলছে এবং আপনার অ্যাপটি একটি নির্দিষ্ট বন্দরে চলছে তবে সোজা ধাপ 4 এ যান।

পদক্ষেপ 1: লিনাক্সে নোডেজ এবং এনপিএম ইনস্টল করা

নোড.জেএস এবং এনপিএম এর সর্বশেষ সংস্করণটি নোডেজ ওয়েবসাইট দ্বারা পরিচালিত অফিসিয়াল নোডসোর্স এন্টারপ্রাইজ লিনাক্স, ফেডোরা, দেবিয়ান এবং উবুন্টু বাইনারি বিতরণ সংগ্রহস্থল থেকে ইনস্টল করার জন্য উপলব্ধ প্রদর্শিত হিসাবে সর্বশেষ নোডেজ এবং এনপিএম প্যাকেজ ইনস্টল করুন।

---------- Install Node.js v11.x ---------- 
$ curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
$ sudo apt-get install -y nodejs

---------- Install Node.js v10.x ----------
$ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
$ sudo apt-get install -y nodejs
---------- Install Node.js v11.x ---------- 
$ curl -sL https://rpm.nodesource.com/setup_11.x | bash -

---------- Install Node.js v10.x ----------
$ curl -sL https://rpm.nodesource.com/setup_10.x | bash -

পদক্ষেপ 2: একটি নোডেজ অ্যাপ্লিকেশন তৈরি করা

প্রদর্শনের উদ্দেশ্যে, আমরা "সিসমন" নামে একটি নমুনা অ্যাপ্লিকেশন তৈরি করব, যা প্রদর্শিত 5000 হিসাবে পোর্টে চলবে।

$ sudo mkdir -p /var/www/html/sysmon
$ sudo vim /var/www/html/sysmon/server.js

সার্ভার.জেএস ফাইলটিতে নিম্নলিখিত কোডটি অনুলিপি করুন এবং আটকান (আপনার সার্ভার আইপি দিয়ে 192.168.43.31 প্রতিস্থাপন করুন)।

const http = require('http');

const hostname = '192.168.43.31';
const port = 5000;

const server = http.createServer((req, res) => {
	res.statusCode = 200;
  	res.setHeader('Content-Type', 'text/plain');
  	res.end('Sysmon App is Up and Running!\n');
});

server.listen(port, hostname, () => {
  	console.log(`Server running at http://${hostname}:${port}/`);
});

ফাইল এবং সংরক্ষণ করে প্রস্থান করুন।

এখন নীচের কমান্ডটি ব্যবহার করে আপনার নোড অ্যাপ্লিকেশনটি শুরু করুন (এটি শেষ করতে Ctrl + x টিপুন)।

$ sudo node /var/www/html/sysmon/server.js
OR
$ sudo node /var/www/html/sysmon/server.js &   #start it in the background to free up your terminal

এখন একটি ব্রাউজার খুলুন এবং http://198.168.43.31:5000 URL- এ আপনার অ্যাপ্লিকেশনটি অ্যাক্সেস করুন।

পদক্ষেপ 3: লিনাক্সে এনগিনেক্স বিপরীত প্রক্সি ইনস্টল করুন

নীচে দেখানো হয়েছে এমনভাবে আমরা সরকারী সংগ্রহশালা থেকে এনগিনেক্সের সর্বশেষ সংস্করণটি ইনস্টল করব।

/Etc/apt/sources.list.d/nginx.list নামে একটি ফাইল তৈরি করুন এবং এটিতে নিম্নলিখিত লাইনগুলি যুক্ত করুন।

deb http://nginx.org/packages/ubuntu/ bionic nginx
deb-src http://nginx.org/packages/ubuntu/  bionic nginx

এরপরে, সংগ্রহস্থল স্বাক্ষরকরণ কী যুক্ত করুন, আপনার সিস্টেম প্যাকেজ সূচক আপডেট করুন এবং নীগনক্স প্যাকেজটি ইনস্টল করুন।

$ wget --quiet http://nginx.org/keys/nginx_signing.key && sudo apt-key add nginx_signing.key
$ sudo apt update
$ sudo apt install nginx

/Etc/yum.repos.d/nginx.repo নামে একটি ফাইল তৈরি করুন এবং নীচের কনফিগারেশনগুলির মধ্যে একটি আটকে দিন।

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/ gpgcheck=0 enabled=1

দ্রষ্টব্য: সেন্টোস এবং আরএইচএল-এর মধ্যে পার্থক্যের কারণে, আপনার ওএস সংস্করণের উপর নির্ভর করে $রিলিজার ((6.x এর জন্য) বা 7 (7.x এর জন্য) দিয়ে প্রতিস্থাপন করা প্রয়োজন।

এরপরে, সংগ্রহস্থল স্বাক্ষরকরণ কী যুক্ত করুন এবং এনজিএনএক্স প্যাকেজটি প্রদর্শিত হিসাবে ইনস্টল করুন।

# wget --quiet http://nginx.org/keys/nginx_signing.key && rpm --import nginx_signing.key
# yum install nginx

সফলভাবে এনগিনেক্স ইনস্টল করার পরে, এটি শুরু করুন, এটি সিস্টেম বুটে স্বয়ংক্রিয় শুরু করতে সক্ষম করুন এবং এটি চালু এবং চলমান আছে কিনা তা পরীক্ষা করুন।

---------- On Debian/Ubuntu ---------- 
$ sudo systemctl status nginx
$ sudo systemctl enable nginx
$ sudo systemctl status nginx

---------- On CentOS/RHEL ---------- 
# systemctl status nginx
# systemctl enable nginx
# systemctl status nginx

যদি আপনি কোনও সিস্টেম ফায়ারওয়াল চালাচ্ছেন তবে আপনাকে 80 (HTTP), 443 (HTTPS) এবং 5000 (নোড অ্যাপ) পোর্ট খুলতে হবে, যা ওয়েব সার্ভার ক্লায়েন্ট সংযোগের জন্য অনুরোধের জন্য শুনবে on

---------- On Debian/Ubuntu ---------- 
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
$ sudo ufw allow 5000/tcp
$ sudo ufw reload

---------- On CentOS/RHEL ---------- 
# firewall-cmd --permanent --add-port=80/tcp
# firewall-cmd --permanent --add-port=443/tcp
# firewall-cmd --permanent --add-port=5000/tcp
# firewall-cmd --reload 

পদক্ষেপ 4: নোডেজ অ্যাপ্লিকেশনটির জন্য বিপরীত প্রক্সি হিসাবে এনগিনেক্স কনফিগার করুন

এখন আপনার নোড অ্যাপের জন্য /etc/nginx/conf.d/ এর নীচে সার্ভার ব্লক কনফিগারেশন ফাইল তৈরি করুন shown

$ sudo vim /etc/nginx/conf.d/sysmon.conf 

নিম্নলিখিত কনফিগারেশনটি কপি এবং পেস্ট করুন (আপনার সার্ভার আইপি দিয়ে 192.168.43.31 পরিবর্তন করুন এবং আপনার ডোমেন নামের সাথে tecmint.lan)।

server {
    listen 80;
    server_name sysmon.tecmint.lan;

    location / {
        proxy_set_header   X-Forwarded-For $remote_addr;
        proxy_set_header   Host $http_host;
        proxy_pass         http://192.168.43.31:5000;
    }
}

পরিবর্তনগুলি সংরক্ষণ করুন এবং ফাইলটি প্রস্থান করুন।

শেষ অবধি, সাম্প্রতিক পরিবর্তনগুলি প্রভাবিত করতে Nginx পরিষেবাটি পুনরায় চালু করুন।

$ sudo systemctl restart nginx
OR
# systemctl restart nginx

পদক্ষেপ 5: ওয়েব ব্রাউজারের মাধ্যমে নোডেজ অ্যাপ্লিকেশন অ্যাক্সেস করুন

এখন আপনার নোড অ্যাপ্লিকেশনটি ইউআরএলটিতে যে পোর্টটি শোনা যাচ্ছে তা সরবরাহ না করেই অ্যাক্সেস করতে সক্ষম হবেন: এটির ব্যবহারকারীর পক্ষে এটি অ্যাক্সেস করার অনেক সুবিধাজনক উপায়।

http://sysmon.tecmint.lan 

আপনার পরীক্ষার ডোমেন নামটি কাজ করার জন্য আপনার/etc/ਮੇਜ਼ਬਾਨ ফাইলটি ব্যবহার করে স্থানীয় ডিএনএস সেটআপ করতে হবে, এটি খুলুন এবং এর মধ্যে নীচের লাইনটি যুক্ত করুন (আপনার সার্ভার আইপি দিয়ে 192.168.43.31 পরিবর্তন করতে ভুলবেন না এবং আপনার ডোমেন নামের সাথে টেকমিন্ট.লান পূর্বের মত).

192.168.43.31 sysmon.tecmint.lan

এখানেই শেষ! এই নিবন্ধে, আমরা দেখিয়েছি কীভাবে নোডেজ অ্যাপ্লিকেশনগুলির জন্য বিপরীত প্রক্সি হিসাবে Nginx কনফিগার করতে হয়। এই নিবন্ধটি সম্পর্কে কোনও প্রশ্ন জিজ্ঞাসা করতে বা আপনার মতামত ভাগ করতে নীচের প্রতিক্রিয়া ফর্মটি ব্যবহার করুন।