লোকাল মেশিনে কোড লেখার সময় ব্যাকএন্ড ডেভেলপারদের জীবন বেশ শান্ত ও নির্ঝঞ্ঝাট থাকে। একটি টার্মিনাল ওপেন করে node server.js বা npm run dev কমান্ড দিলেই অ্যাপটি localhost:3000 পোর্টে চালু হয়ে যায়। ব্রাউজারে গিয়ে রিফ্রেশ করলেই ডেটা আসে, ফর্ম সাবমিট হয় এবং সবই প্রত্যাশিতভাবে কাজ করে। কিন্তু সমস্যা শুরু হয় ঠিক সেই মুহূর্তে—যখন এই অ্যাপ্লিকেশনটিকে ইন্টারনেটে লক্ষ লক্ষ রিয়েল ইউজারের জন্য প্রোডাকশন সার্ভারে লাইভ করতে হয়।

ইন্টারনেটের উন্মুক্ত দুনিয়ায় ট্রাফিক সরাসরি কোনো সাধারণ অ্যাপ্লিকেশন পোর্টে গিয়ে ধাক্কা খায় না। সেখানে একই সেকেন্ডে হাজারো মানুষ রিকোয়েস্ট পাঠায়, কেউ ছবি বা সিএসএস ফাইল চায়, কেউ ডাটাবেজ এপিআই হিট করে, কেউ ভুল ইউআরএলে আঘাত করে, আবার ক্ষতিকর বট নেটওয়ার্ক ডিডস (DDoS) আক্রমণের চেষ্টা চালায়। এই জটিল বাস্তবতায় আপনার নোডজেএস অ্যাপ্লিকেশনকে সুরক্ষিত ও কার্যকর রাখতে সামনে একটি দক্ষ ট্রাফিক কন্ট্রোল গার্ড দরকার পড়ে—আর এই স্তরেই বিশ্বজুড়ে ইঞ্জিনিয়ারদের প্রথম পছন্দ Nginx (ইঞ্জিন-এক্স)।

রেস্তোরাঁর বাস্তব রূপক: কিচেন বনাম রিসেপশন ডেস্ক

Nginx এবং একটি ব্যাকএন্ড অ্যাপ্লিকেশনের (যেমন Node.js, Python FastAPI, বা Go) পারস্পরিক সম্পর্ক বোঝার সবচেয়ে সহজ উপায় হলো একটি আধুনিক রেস্তোরাঁর কর্মপদ্ধতি কল্পনা করা:

  • কিচেন (Kitchen): আপনার ব্যাকএন্ড নোডজেএস অ্যাপ হচ্ছে রেস্তোরাঁর শেফ এবং কিচেন। এর কাজ হলো জটিল রান্না করা—অর্থাৎ বিজনেস লজিক এক্সিকিউট করা, ডাটাবেজ থেকে ডেটা বের করা, পাসওয়ার্ড হ্যাশ ভ্যালিডেট করা এবং হিসাব-নিকাশ মেটানো।
  • রিসেপশন ও ওয়েটার (Reception & Front Desk): Nginx হলো রেস্তোরাঁর সামনের সুসজ্জিত রিসেপশন ডেস্ক ও দক্ষ ওয়েটার বাহিনী। তারা আগত অতিথিদের বরণ করে, কার কী চাই তা জেনে নেয় এবং সরাসরি কিচেনে কাউকে ঢুকতে না দিয়ে সুশৃঙ্খলভাবে টেবিল পরিচালনা করে।

যদি কোনো রেস্তোরাঁয় ফ্রন্ট ডেস্ক বা ওয়েটার না থাকে এবং প্রতিটি ক্রেতা সশরীরে কিচেনের ভেতরে গিয়ে শেফকে বলেন, "আমাকে এক গ্লাস জল দিন" কিংবা "মেনু কার্ডটা একটু দেখি"—তাহলে শেফ রান্নায় মনোযোগ দিতে পারবেন না, রান্নাঘর বিশৃঙ্খল হয়ে পড়বে এবং একপর্যায়ে অগ্নিকাণ্ড ঘটবে। ঠিক একইভাবে, যদি ইন্টারনেটের প্রতিটি সাধারণ স্ট্যাটিক ছবি বা জাভাস্ক্রিপ্ট ফাইলের জন্য সরাসরি Node.js অ্যাপ্লিকেশনের ইভেন্ট লুপে আঘাত আসে, তবে অ্যাপ্লিকেশন অত্যন্ত দ্রুত মেমোরি ঘাটতি ও সার্ভার ক্র্যাশের শিকার হবে।

কেন পোর্ট ৩০০০ সরাসরি ইন্টারনেটে ওপেন করা বিপজ্জনক?

অনেকেই ভাবেন, ক্লাউড ভিপিএসের পাবলিক আইপিতে পোর্ট ৩০০০ ওপেন করে (যেমন http://203.0.113.10:3000) সেখানে ইউজারদের ভিজিট করতে দিলে সমস্যা কোথায়? নেটওয়ার্ক ও সিকিউরিটি আর্কিটেকচারের দৃষ্টিকোণ থেকে এটি অত্যন্ত ঝুঁকিপূর্ণ একটি সিদ্ধান্ত:

  1. পোর্ট ৮০ ও ৪৪৩ এর মানদণ্ড: পৃথিবীর প্রতিটি ওয়েব ব্রাউজার ডিফল্টভাবে এইচটিটিপির জন্য পোর্ট ৮০ (Port 80) এবং এনক্রিপ্টেড সিকিউর এইচটিটিপিএসের জন্য পোর্ট ৪৪৩ (Port 443) ব্যবহার করে। ভিজিটররা কখনোই ইউআরএলের শেষে :3000 টাইপ করে কোনো প্রফেশনাল ওয়েবসাইটে প্রবেশ করেন না।
  2. নিরাপত্তা দেয়ালের ঘাটতি: সাধারণ ওএস ইউজার প্রিভিলেজে চলা অ্যাপ্লিকেশন সার্ভার সরাসরি ওয়েবের মুখামুখি হলে রানটাইম এক্সপ্লোয়েট, মেমোরি লিক এবং বাফার ওভারফ্লোর মাধ্যমে সার্ভারের পূর্ণ রুট অ্যাক্সেস হ্যাকারের হাতে চলে যাওয়ার ঝুঁকি বহুগুণ বেড়ে যায়। এটি ঠিক সদর দরজার নিচে ঘরের চাবি লুকিয়ে রাখার মতো অসাবধানতা।
  3. আইটি প্রোটোকল ব্লকিং: বিভিন্ন করপোরেট অফিস, বিশ্ববিদ্যালয় ও মোবাইল আইএসপি নেটওয়ার্ক ৮০ ও ৪৪৩ ব্যতীত অন্য সকল নন-স্ট্যান্ডার্ড পোর্ট (যেমন ৩০০০, ৫০০০ বা ৮০০০) ফায়ারওয়াল দিয়ে ব্লক করে রাখে। ফলে বৈধ ব্যবহারকারীরাও সাইটে প্রবেশ করতে ব্যর্থ হন।

Nginx আসলে কী? (The Traffic Control Gateway)

Nginx হলো একটি অত্যন্ত হালকা ও অতি-উচ্চ ক্ষমতাসম্পন্ন HTTP সার্ভার, রিভার্স প্রক্সি (Reverse Proxy) এবং লোড ব্যালেন্সার। এটি সিস্টেমের পোর্ট ৮০ ও ৪৪৩-এ কান পেতে বসে থাকে এবং প্রতিটি আগত রিকোয়েস্ট বিশ্লেষণ করে সঠিক গন্তব্যে পৌঁছে দেয়।

ফরওয়ার্ড প্রক্সি বনাম রিভার্স প্রক্সি

প্রক্সি সার্ভারের ধারণায় অনেকেই বিভ্রান্ত হন। নিচে তাদের মৌলিক পার্থক্য সংক্ষেপে তুলে ধরা হলো:

  • ফরওয়ার্ড প্রক্সি (Forward Proxy): এটি ক্লায়েন্ট বা ইউজারের পক্ষে কাজ করে। যেমন ভিপিএন (VPN)। ক্লায়েন্ট ইন্টারনেটের কোন সাইটে যাচ্ছে তা ওয়েবসাইটের কাছে গোপন থাকে; ওয়েবসাইটের চোখে কেবল ভিপিএন সার্ভারের আইপি দৃশ্যমান হয়।
  • রিভার্স প্রক্সি (Reverse Proxy): এটি সার্ভারের পক্ষে কাজ করে। ইন্টারনেটের সাধারণ ক্লায়েন্ট জানেই না যে পেছনের ব্যাকএন্ডে কোন প্রযুক্তির সার্ভার চলছে। ক্লায়েন্ট কেবল Nginx-এর সাথে কথা বলে, আর Nginx নিজে ভেতরের প্রাইভেট নেটওয়ার্কে চলা Node.js সার্ভার থেকে ডেটা সংগ্রহ করে ক্লায়েন্টকে ফিরিয়ে দেয়।

Nginx-এর মাস্টার-ওয়ার্কার ও ইভেন্ট-ড্রিভেন আর্কিটেকচার

Nginx-এর তুমুল জনপ্রিয়তার মূল কারণ এর স্থাপত্য বা আর্কিটেকচারাল ডিজাইন। ট্র্যাডিশনাল ওয়েব সার্ভারগুলো যেখানে প্রতিটি নতুন ব্যবহারকারী সংযোগের জন্য আলাদা থ্রেড বা সম্পূর্ণ নতুন প্রসেস তৈরি করত (যার ফলে হাজারো কানেকশনে র‍্যাম ফুরিয়ে সার্ভার ফ্রিজ হতো), সেখানে Nginx চলে আধুনিক নন-ব্লকিং ইভেন্ট-ড্রিভেন পদ্ধতিতে।

Nginx শুরু হলে সিস্টেমে প্রধানত দুই ধরনের প্রসেস কাজ করে:

  • মাস্টার প্রসেস (Master Process): এটি কনফিগারেশন ফাইল পাঠ করে, নেটওয়ার্ক পোর্টগুলোকে বাইন্ড করে এবং ওয়ার্কার প্রসেসগুলোর সার্বিক স্বাস্থ্য পর্যবেক্ষণ করে।
  • ওয়ার্কার প্রসেস (Worker Processes): সার্ভারের সিপিইউ কোর (CPU Cores) সংখ্যার সাথে সামঞ্জস্য রেখে স্বয়ংক্রিয়ভাবে এক বা একাধিক ওয়ার্কার প্রসেস সৃষ্টি হয়। প্রতিটি ওয়ার্কার প্রসেস একক থ্রেডে একটি অত্যন্ত শক্তিশালী অ্যাসিঙ্ক্রোনাস ইভেন্ট লুপ (যেমন লিনাক্সের epoll মেকানিজম) চালায়।

এই কৌশলের কারণে মাত্র একটি একক ওয়ার্কার প্রসেস কোনো প্রকার মেমোরি বিস্ফোরণ ছাড়াই একসাথে দশ হাজারেরও বেশি সমসাময়িক (Concurrent) কানেকশন খুব অল্প র‍্যাম খরচ করে অনায়াসে হ্যান্ডেল করতে পারে।

বৈশিষ্ট্যNginx আর্কিটেকচারঐতিহ্যবাহী থ্রেড-ভিত্তিক মডেল
কনকারেন্সি মডেলঅ্যাসিঙ্ক্রোনাস, নন-ব্লকিং ইভেন্ট-ড্রিভেন (epoll/kqueue)প্রতি কানেকশনে নতুন প্রসেস বা আলাদা থ্রেড অ্যালোকেশন
র‍্যাম ও সিপিইউ ব্যবহারঅত্যন্ত ন্যূনতম ও স্থিতিশীল (প্রতি কানেকশনে নগণ্য মেমোরি ফুটপ্রিন্ট)কানেকশন বাড়ার সাথে সাথে মেমোরি ব্যবহার গুণিতক হারে বৃদ্ধি পায়
স্ট্যাটিক ফাইল হ্যান্ডলিংসরাসরি ওএস কার্নেল লেভেল থেকে আল্ট্রাফাস্ট ডিরেক্ট ডিস্ক রিডঅ্যাপ্লিকেশন রানটাইম ও ইন্টারপ্রিটার ঘুরে আসায় ধীরগতির
রিভার্স প্রক্সি ও লোড ব্যালেন্সিংবিল্ট-ইন কোর ফিচার, হাই-থ্রুপুট স্ট্রিমিং ও বাফারিংঅতিরিক্ত মডিউল নির্ভর এবং ভারী কনফিগারেশন
সি১০কে (C10K) সমস্যা সমাধানসহজেই ১০,০০০+ সমসাময়িক কানেকশন হ্যান্ডেল করতে সক্ষমকনকারেন্ট ট্রাফিকের চাপে কনটেক্সট সুইচের ফলে সার্ভার ক্র্যাশ করে

প্রোডাকশনে Nginx ব্যবহারের ৫টি মৌলিক সুবিধা

১. রিভার্স প্রক্সিয়িং ও হেডার ম্যানেজমেন্ট (Proxy Pass)

Nginx বাইরের ট্রাফিক গ্রহণ করে লোকালহোস্টের নির্দিষ্ট ইন্টারনাল পোর্টে (যেমন http://127.0.0.1:3000) পাঠিয়ে দেয়। এতে ক্লায়েন্ট ও নোডজেএস-এর মধ্যে একটি সুরক্ষিত গার্ড স্থাপিত হয়। একই সাথে ক্লায়েন্টের আসল আইপি যাতে পেছনের ব্যাকএন্ড জানতে পারে, সেজন্য Nginx প্রয়োজনীয় হেডার পাস করে।

২. স্ট্যাটিক ফাইল ও অ্যাসেট ক্যাশিং (Direct Static Serving)

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

৩. এসএসএল টার্মিনেশন (SSL / TLS Termination)

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

৪. লোড ব্যালেন্সিং ও হরাইজন্টাল স্কেলিং (Load Balancing)

ভবিষ্যতে ট্রাফিক বাড়লে আপনি একই সার্ভারে ৩০০০, ৩০০১, ৩০০২ পোর্টে তিনটি আলাদা নোডজেএস ইনস্ট্যান্স চালাতে পারেন। Nginx তার upstream ব্লকের মাধ্যমে ইনকামিং ট্রাফিককে সমানুপাতিক হারে (Round Robin বা Least Connections নীতিতে) এই তিনটি অ্যাপের মাঝে ভাগ করে দিতে পারে। কোনো একটি অ্যাপ ক্র্যাশ করলে স্বয়ংক্রিয়ভাবে ট্রাফিক চালু থাকা বাকি অ্যাপগুলোতে চলে যায়।

৫. সিকিউরিটি গার্ড ও রেট লিমিটিং (DDoS Mitigation)

প্রতি সেকেন্ডে একই আইপি থেকে কয়টি রিকোয়েস্ট আসতে পারবে, রিকোয়েস্ট বডির সাইজ সর্বোচ্চ কত মেগাবাইট হবে (যেমন ফাইল আপলোড অ্যাটাক প্রতিরোধে client_max_body_size), এবং সন্দেহজনক ইউজার-এজেন্ট ব্লক করার কাজগুলো নোডজেএস পর্যন্ত পৌঁছানোর আগেই Nginx আটকে দেয়।

উবুন্টু ভিপিএসে Nginx ও Node.js সেটআপ: ধাপে ধাপে বাস্তব গাইড

একটি পরিষ্কার উবুন্টু ক্লাউড সার্ভারে (Ubuntu 22.04 / 24.04 LTS) কীভাবে সম্পূর্ণ পরিবেশটি কনফিগার করবেন, তা নিচে কমান্ডসহ বিশদভাবে ব্যাখ্যা করা হলো:

ধাপ ১: Nginx ইনস্টল ও সার্ভার স্ট্যাটাস যাচাই

প্রথমে সার্ভারের প্যাকেজ রিপোজিটরি আপডেট করে Nginx ইনস্টল করে নিন:

sudo apt update && sudo apt install nginx -y sudo systemctl status nginx

যদি টার্মিনালে active (running) দেখতে পান, তবে বুঝবেন সার্ভারের পোর্ট ৮০-তে Nginx সক্রিয় হয়ে গেছে। ব্রাউজারে সার্ভারের পাবলিক আইপি দিলে ডিফল্ট 'Welcome to nginx!' পেজ দেখতে পাবেন।

ধাপ ২: Node.js অ্যাপ্লিকেশন প্রস্তুত করা

নোডসোর্স (NodeSource) অফিসিয়াল স্ক্রিপ্টের মাধ্যমে আধুনিক Node.js এলটিএস ভার্সন ইনস্টল করুন এবং একটি ডেমো সার্ভার স্ক্রিপ্ট লিখুন:

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install nodejs -y # অ্যাপ ডিরেক্টরি তৈরি mkdir -p ~/my-api && cd ~/my-api npm init -y npm install express

এবার server.js ফাইলে একটি সাধারণ এক্সপ্রেস সার্ভার লিখুন যা শুধুমাত্র লোকাল মেশিনে কান পাতবে:

// server.js const express = require('express'); const app = express(); const PORT = 3000; app.get('/', (req, res) => {    res.json({        success: true,        message: 'Hello from Node.js behind Nginx Reverse Proxy!',        timestamp: new Date().toISOString()    }); }); // গুরুত্বপূর্ণ: 0.0.0.0 এর বদলে 127.0.0.1 এ বাইন্ড করা হয়েছে যাতে বাইরের কেউ সরাসরি ঢুকতে না পারে app.listen(PORT, '127.0.0.1', () => {    console.log(`Node app running internally on http://127.0.0.1:${PORT}`); });

ধাপ ৩: Nginx রিভার্স প্রক্সি কনফিগারেশন তৈরি

উবুন্টুতে নতুন সাইটের কনফিগারেশন /etc/nginx/sites-available/ ফোল্ডারে রাখতে হয়। ন্যানো এডিটর দিয়ে নতুন ফাইল খুলুন:

sudo nano /etc/nginx/sites-available/myapp.conf

ফাইলের ভেতরে নিচের প্রফেশনাল রিভার্স প্রক্সি কনফিগারেশনটি পেস্ট করুন:

server {    listen 80;    server_name example.com www.example.com;    # স্ট্যাটিক অ্যাসেটস ডিরেক্ট ডিস্ক সার্ভিং    location /static/ {        alias /var/www/myapp/public/;        expires 30d;        add_header Cache-Control "public, no-transform";    }    # ডায়নামিক ব্যাকএন্ড এপিআই রিভার্স প্রক্সি    location / {        proxy_pass http://127.0.0.1:3000;        proxy_http_version 1.1;        # প্রয়োজনীয় প্রক্সি হেডারসমূহ        proxy_set_header Upgrade $http_upgrade;        proxy_set_header Connection 'upgrade';        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        proxy_set_header X-Forwarded-Proto $scheme;        # ক্যাশ ও টাইমআউট অপটিমাইজেশন        proxy_cache_bypass $http_upgrade;        proxy_connect_timeout 60s;        proxy_send_timeout 60s;        proxy_read_timeout 60s;    } }

ধাপ ৪: সিম্বলিক লিংক ও কনফিগারেশন টেস্ট

কনফিগারেশন ফাইলটি কার্যকর করার জন্য sites-enabled ফোল্ডারে সিম্বলিক লিংক তৈরি করতে হয়। মনে রাখবেন, Nginx রিলোড করার আগে সবসময় সিনট্যাক্স ভ্যালিডেশন টেস্ট করা বাধ্যতামূলক:

# সিম্বলিক লিংক তৈরি sudo ln -s /etc/nginx/sites-available/myapp.conf /etc/nginx/sites-enabled/ # সিনট্যাক্স টেস্ট (অত্যন্ত গুরুত্বপূর্ণ) sudo nginx -t

যদি আউটপুটে syntax is ok এবং test is successful দেখতে পান, কেবল তখনই নিরাপদভাবে সার্ভিসটি রিলোড করুন:

sudo systemctl reload nginx

প্রোডাকশন ডেপ্লয়মেন্টের অপরিহার্য চেকলিস্ট

  1. প্রসেস ম্যানেজার ব্যবহার করুন (PM2): টার্মিনালে সরাসরি node server.js চালালে টার্মিনাল বন্ধ করলেই সাইট ডাউন হয়ে যাবে। তাই প্রোডাকশনে pm2 start server.js --name "my-api" এবং pm2 startup ব্যবহার করুন যাতে সার্ভার রিবুট হলেও ব্যাকএন্ড স্বয়ংক্রিয়ভাবে চালু থাকে।
  2. সার্টবট দিয়ে ফ্রি এসএসএল (Let's Encrypt Certbot): এক ক্লিকে সম্পূর্ণ বিনামূল্যে স্বয়ংক্রিয় এইচটিটিপিএস সার্টিফিকেট কার্যকর করুন:sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d example.com -d www.example.comসার্টবট স্বয়ংক্রিয়ভাবে আপনার Nginx ফাইলে এসএসএল ব্লক ও রিডাইরেক্ট রুল যোগ করে দেবে।
  3. ইউএফডব্লিউ ফায়ারওয়াল (UFW Firewall): সার্ভারের ফায়ারওয়ালে কেবল পোর্ট ২২ (এসএসএইচ), ৮০ (এইচটিটিপি) এবং ৪৪৩ (এইচটিটিপিএস) ওপেন রাখুন। ৩০০০ নম্বর পোর্ট কখনোই পাবলিকলি ওপেন করবেন না:sudo ufw allow 'Nginx Full' sudo ufw allow OpenSSH sudo ufw enable
  4. জিপ কম্প্রেশন (Gzip): Nginx-এর gzip on; নির্দেশিকা অন করে রাখলে টেক্সট, সিএসএস ও জেএস ফাইলগুলো ব্রাউজারে যাওয়ার আগে ৭০% পর্যন্ত সংকুচিত হয়ে যায়, যা ব্যান্ডউইথ সাশ্রয় করে এবং পেজ লোডিং গতি বহুগুণ বাড়িয়ে দেয়।

সাধারণ প্রশ্নোত্তর (FAQ)

১. Nginx কি Node.js-এর বিকল্প?

না, Nginx কখনোই Node.js-এর বিকল্প নয়। তারা একে অপরের পরিপূরক। Node.js আপনার অ্যাপ্লিকেশনের বিজনেস লজিক ও ডাটাবেজ অপারেশন সামলায়, আর Nginx বাইরের ট্রাফিককে সুশৃঙ্খলভাবে সাজিয়ে Node.js-এর কাছে পৌঁছে দেওয়ার জন্য গেটওয়ে হিসেবে কাজ করে।

২. ডকার (Docker) ব্যবহার করলেও কি Nginx প্রয়োজন আছে?

হ্যাঁ, ডকারাইজড আর্কিটেকচারেও Nginx ইনগ্রেস কন্ট্রোলার (Ingress Controller) বা ফ্রন্ট গেটওয়ে হিসেবে অত্যন্ত জনপ্রিয়। একাধিক কন্টেইনারাইজড মাইক্রোসার্ভিসের ট্রাফিক রাউটিং ও কেন্দ্রীয়ভাবে এসএসএল ম্যানেজমেন্টের জন্য Nginx অপরিহার্য।

৩. অ্যাপে ক্র্যাশ ঘটলে Nginx কী আচরণ করে?

যদি আপনার পেছনের Node.js অ্যাপ কোনো এররের কারণে ক্র্যাশ করে বন্ধ হয়ে যায়, Nginx সাথে সাথে ক্লায়েন্টকে স্ট্যান্ডার্ড 502 Bad Gateway রেসপন্স পেজ ফিরিয়ে দেয়। লোড ব্যালেন্সারে একাধিক ইনস্ট্যান্স সক্রিয় থাকলে Nginx সাথে সাথে রিকোয়েস্টটি সচল অন্য ইনস্ট্যান্সে রি-রুট করে দেয়, ফলে ইউজার কোনো ডাউনটাইম টের পান না।

৪. অ্যাপাচি (Apache) বনাম Nginx: বর্তমান যুগে কোনটি শ্রেয়?

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

তথ্যসূত্র ও অফিসিয়াল ডকুমেন্টেশন