DevOps & Server Engineering

Architectural Guide: Configuring Nginx as a High-Performance Reverse Proxy

ব্যাকএন্ড ইঞ্জিনিয়ারিং এ যখন আমরা Node.js, Python FastAPI কিংবা Go দিয়ে কোনো ইন্টারনাল এপিআই (API) বা ওয়েব সার্ভিস রান করি, তখন সেই ব্যাকএন্ড পোর্টটিকে সরাসরি ইন্টারনেটের কাছে এক্সপোজ করা সিকিউরিটির দিক থেকে অত্যন্ত ঝুঁকিপূর্ণ। এর সমাধান হলো একটি হাই-পারফরম্যান্স রিভার্স প্রক্সি (Reverse Proxy) লেয়ার ব্যবহার করা।

**Nginx** হলো পৃথিবীর সবচেয়ে নির্ভরযোগ্য এবং দ্রুতগতির ওয়েব সার্ভার ইঞ্জিন যা রিভার্স প্রক্সি হিসেবে কাজ করে আগত সমস্ত পাবলিক ট্রাফিক রিসিভ করে এবং ইন্টারনাল নেটওয়ার্কে থাকা নির্দিষ্ট পোর্টের অ্যাপ্লিকেশনে নিখুঁতভাবে রাউট করে দেয়।

১. প্রফেশনাল Nginx ব্লকিং সার্ভার ব্লক কনফিগারেশন

আপনার লিনাক্স বা ক্লাউড ভিপিএস (VPS) সার্ভারের /etc/nginx/sites-available/default ফাইলে যান এবং নিচের প্রফেশনাল প্রক্সি ডিরেক্টরি ব্লকটি পেস্ট করুন:

server {
    listen 80;
    server_name api.ahyancreations.top;

    # সমস্ত রিকোয়েস্ট লোকাল Node.js/Python পোর্টে ফরওয়ার্ড করার লুপ
    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_connect_timeout 60s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;
    }
}

ধাপ ২: সার্ভার রিলোড এবং টেস্ট ভেরিফিকেশন

কনফিগারেশনে কোনো সিনট্যাক্স এরর (Syntax Error) আছে কিনা তা চেক করতে আপনার টার্মিনালে নিচের লিনাক্স কমান্ডটি দিন। কোড ঠিক থাকলে সার্ভার রিস্টার্ট করুন:

# এনজিনেক্স কনফিগারেশন টেস্ট করা
nginx -t

# সাকসেস মেসেজ আসলে এনজিনেক্স ডেমো রিলোড করা
sudo systemctl restart nginx

আর্কিটেকচারাল সুবিধা: এই রিভার্স প্রক্সি সেটআপের মাধ্যমে আপনার মূল ব্যাকএন্ড প্রসেসটি সুরক্ষিত থাকে। এর পাশাপাশি Nginx লেয়ারেই আপনি SSL (Certbot Let's Encrypt), Gzip কম্প্রেশন এবং ডস আক্রমণ প্রতিরোধ করার জন্য রেট লিমিটিং (Rate Limiting) এর মতো অ্যাডভান্সড সিকিউরিটি ফিচার এক জায়গায় হ্যান্ডেল করতে পারবেন।