বুলেট পয়েন্ট ছাড়া আপনার জন্য Part 2: Node.js সেটআপ, ডোমেইন পয়েন্ট করা, এবং ফোল্ডার তৈরি একে একে দেওয়া হলো:
Part 2: Node.js সেটআপ, ডোমেইন পয়েন্ট করা, এবং ফোল্ডার তৈরি
১. Node.js ইনস্টলেশন এবং কনফিগারেশন
প্রথমে, আপনাকে আপনার VPS এ Node.js এবং npm ইনস্টল করতে হবে। তবে, আমরা Node.js LTS ভার্সন ব্যবহার করবো, কারণ এটি দীর্ঘ সময় ধরে সাপোর্টেড থাকে এবং বেশিরভাগ প্রোডাকশন অ্যাপ্লিকেশনগুলির জন্য এটি সেরা।
nvm (Node Version Manager) ইনস্টল করা (Node.js LTS ভার্সন ব্যবহারের জন্য)
nvm (Node Version Manager) ইনস্টল করতে হবে, যাতে আপনি Node.js এর LTS (Long Term Support) ভার্সন ব্যবহার করতে পারেন। প্রথমে nvm ইনস্টল করার জন্য এই কমান্ডটি ব্যবহার করুন:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
এর পর, আপনি nvm ইনস্টলেশন চেক করতে:
command -v nvm
Node.js LTS ভার্সন ইনস্টল করা
nvm ইনস্টল করার পর, Node.js এর লেটেস্ট LTS ভার্সন ইনস্টল করতে এই কমান্ডটি ব্যবহার করুন:
nvm install --lts
ইনস্টলেশন পরবর্তী, আপনার Node.js এবং npm এর ভার্সন চেক করতে:
node -v
npm -v
২. Node.js অ্যাপ্লিকেশন তৈরি করা
ফোল্ডার তৈরি করা:
এখন আপনি একটি ফোল্ডার তৈরি করুন যেটি আপনার অ্যাপ্লিকেশন রাখবে। ফোল্ডারটির নাম আপনি shekhhasina রাখতে পারেন:
mkdir ~/shekhhasina
cd ~/shekhhasina
package.json ফাইল তৈরি করা:
npm init কমান্ড চালিয়ে package.json ফাইল তৈরি করুন:
npm init -y
অ্যাপ্লিকেশন কোড লেখা:
উদাহরণস্বরূপ, একটি সাধারণ app.js ফাইল তৈরি করুন:
// app.js
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello, World!');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
অ্যাপ্লিকেশন চালানো:
Node.js অ্যাপ্লিকেশন চালানোর জন্য:
node app.js
৩. PM2 দিয়ে Node.js অ্যাপ্লিকেশন চালানো
PM2 একটি জনপ্রিয় process manager, যা আপনার Node.js অ্যাপ্লিকেশনকে ব্যাকগ্রাউন্ডে চালাতে সাহায্য করে।
PM2 ইনস্টল করা:
PM2 ইনস্টল করতে:
sudo npm install pm2 -g
PM2 দিয়ে Node.js অ্যাপ্লিকেশন চালানো:
আপনার অ্যাপ্লিকেশন চালানোর জন্য PM2 ব্যবহার করুন:
pm2 start app.js
অ্যাপ্লিকেশন লগ দেখা:
PM2 দিয়ে অ্যাপ্লিকেশনের লগ দেখতে:
pm2 logs
৪. Nginx কনফিগারেশন (ডোমেইন পয়েন্ট করা)
এখন, আপনার shekhhasina.com ডোমেইনটি VPS এর আইপি 195.35.45.104 এর সাথে পয়েন্ট করার জন্য Nginx কনফিগারেশন করতে হবে।
Nginx ইনস্টল করা:
Nginx ইনস্টল করতে:
sudo apt install nginx
Nginx কনফিগারেশন ফাইল এডিট করা:
Nginx কনফিগারেশন ফাইলটি এডিট করতে:
sudo nano /etc/nginx/sites-available/default
নতুন কনফিগারেশন যোগ করা:
এখানে নিম্নলিখিত কনফিগারেশনটি যোগ করুন:
server {
listen 80;
server_name shekhhasina.com www.shekhhasina.com;
location / {
proxy_pass http://127.0.0.1:3000; # আপনার Node.js অ্যাপ্লিকেশন রান করছে এমন পোর্ট
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Nginx সার্ভার রিস্টার্ট করা:
কনফিগারেশন সেভ করার পর, Nginx সার্ভিস রিস্টার্ট করতে:
sudo systemctl restart nginx
৫. SSL (HTTPS) ইনস্টল করা (Let’s Encrypt)
Certbot ইনস্টল করা:
SSL ইনস্টল করতে Certbot ইনস্টল করুন:
sudo apt install certbot python3-certbot-nginx
SSL সার্টিফিকেট প্রাপ্তি:
আপনার ডোমেইনের জন্য SSL সার্টিফিকেট প্রাপ্তি:
sudo certbot --nginx -d shekhhasina.com -d www.shekhhasina.com
Certbot আপনাকে একটি ইমেইল ঠিকানা দিতে বলবে, যা SSL সার্টিফিকেটের আপডেট এবং নিরাপত্তা সতর্কতা সম্পর্কিত নোটিফিকেশন পাঠানোর জন্য ব্যবহৃত হবে। এটি একটি গুরুত্বপূর্ণ পদক্ষেপ, কারণ SSL সার্টিফিকেটের মেয়াদ শেষ হওয়ার আগেই আপনাকে রিনিউ করার জন্য একটি সতর্কতা পাঠানো হয়।
উদাহরণস্বরূপ:
Please enter an email address (used for urgent renewal and security notices)
(Enter 'c' to cancel): your-email@example.com
আপনি আপনার ইমেইল ঠিকানা লিখবেন, যেমন: your-email@example.com।
যতটা বেশি সম্ভব শর্তাবলী এবং টার্মস গ্রহণ:
Certbot আপনাকে তাদের শর্তাবলী ও টার্মস (terms of service) গ্রহণ করার জন্য বলবে। আপনাকে Yes বা No নির্বাচন করতে হবে।
উদাহরণস্বরূপ:
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf
By selecting 'Y' you agree to the Terms of Service.
Do you agree to the terms of service? (Y/n)
এখানে আপনাকে Y চাপলে আপনি শর্তাবলী মেনে নেবেন।
নিরাপত্তা ইমেইল (অবশ্যই পরবর্তী জন্য রিনিউয়ের জন্য ব্যবহার হবে):
এরপর আপনাকে নিরাপত্তা বিজ্ঞপ্তি পাঠানোর জন্য ইমেইল অ্যাড্রেস প্রদান করতে হবে। এর মাধ্যমে আপনার SSL সার্টিফিকেটের মেয়াদ শেষ হওয়ার আগেই আপনার কাছে একটি রিনিউয়াল নোটিফিকেশন পৌঁছাবে। সাধারণত, এটি আপনার প্রথমবারের মতো সার্টিফিকেট ইনস্টল করার পর দেয়া হয়, তবে আপনি পরে এটি পরিবর্তনও করতে পারেন।
HTTP থেকে HTTPS এ রিডাইরেক্ট করার অপশন:
Certbot আপনাকে HTTP (পোর্ট 80) থেকে HTTPS (পোর্ট 443) এ রিডাইরেক্ট করতে বলবে। এর মাধ্যমে সার্ভারটি যেকোনো HTTP অনুরোধকে HTTPS এ রিডাইরেক্ট করবে, যাতে সার্ভারটি পুরোপুরি সুরক্ষিত থাকে।
সাধারণত আপনি Yes নির্বাচন করবেন, যাতে সার্ভারটি সব HTTP ট্র্যাফিককে HTTPS এ রিডাইরেক্ট করে।
উদাহরণস্বরূপ:
Would you like to redirect all HTTP traffic to HTTPS? (Y/n)
এখানে Y নির্বাচন করলে সার্ভারটি সব HTTP ট্র্যাফিককে HTTPS এ রিডাইরেক্ট করবে। আপনি যদি না চান তবে n নির্বাচন করতে পারেন, কিন্তু এটি সিকিউরিটির জন্য ভালো নয়।
SSL সার্টিফিকেট রিনিউ করা:
Certbot স্বয়ংক্রিয়ভাবে SSL সার্টিফিকেট রিনিউ করে, তবে আপনি এটি ম্যানুয়ালি পরীক্ষা করতে পারেন:
sudo certbot renew --dry-run
৬. ডোমেইন পয়েন্ট করা (DNS কনফিগারেশন)
আপনার DNS কনফিগারেশন প্যানেলে গিয়ে shekhhasina.com ডোমেইনটির A রেকর্ড পয়েন্ট করুন আপনার VPS আইপির সাথে।
A রেকর্ড:
- Name:
shekhhasina.com - Type:
A - TTL: 14400
- RDATA:
195.35.45.104(আপনার VPS এর আইপি)
www রেকর্ড:
- Name:
www.shekhhasina.com - Type:
CNAME - TTL: 14400
- RDATA:
shekhhasina.com
সারাংশ:
এখন আপনার shekhhasina.com ডোমেইনটি আপনার VPS আইপি 195.35.45.104 এর সাথে পয়েন্ট হয়ে যাবে, এবং Nginx ও SSL কনফিগারেশন সহ আপনার Node.js অ্যাপ্লিকেশন চালু হবে।
এটি পরবর্তী অংশে এগিয়ে যেতে থাকুন!