কীভাবে ব্যবহার করবেন
- ডোমেইন লিখুন এবং সাইটের ধরন বেছে নিন—রিভার্স প্রক্সির জন্য আপস্ট্রিম ঠিকানা, আর অন্যগুলোর জন্য ওয়েব রুট দিন।
- প্রয়োজন অনুযায়ী HTTPS, HTTP/2, HSTS, www রিডাইরেক্ট, gzip, ক্যাশিং এবং নিরাপত্তা হেডারে টিক দিন।
- কনফিগারেশনটি /etc/nginx/conf.d/-এ কপি বা ডাউনলোড করে রাখুন, nginx -t চালান এবং nginx রিলোড করুন।
অপশনগুলোর ব্যাখ্যা
- রিভার্স প্রক্সি
- আপস্ট্রিম ঠিকানায় অনুরোধ ফরওয়ার্ড করে এবং Host, X-Real-IP, X-Forwarded-For ও X-Forwarded-Proto পাঠায়, যাতে ব্যাকএন্ড দর্শকের আসল IP ও স্কিম দেখতে পায়।
- সিঙ্গেল-পেজ অ্যাপ
- অজানা পাথগুলো index.html-এ ফলব্যাক হয়, তাই history-mode রাউটার (React Router, Vue Router) রিলোডের সময় 404 দেখায় না।
- HTTPS
- সার্টিফিকেটের পাথ certbot-এর (Let's Encrypt) ডিফল্ট অনুসরণ করে এবং HTTP অনুরোধ HTTPS-এ 301 রিডাইরেক্ট পায়। HTTP/2-এর জন্য listen 443 ssl http2 রূপ ব্যবহার করা হয়, যা nginx-এর সব সংস্করণে কাজ করে।
- HSTS
- ব্রাউজারকে এক বছর ধরে ডোমেইন এবং তার সব সাবডোমেইনের জন্য শুধু HTTPS ব্যবহার করতে বলে। আগে নিশ্চিত করুন প্রতিটি সাবডোমেইনে HTTPS সমর্থিত, নইলে সেগুলোতে পৌঁছানো যাবে না।
উদাহরণ: HTTPS ও www সহ সিঙ্গেল-পেজ অ্যাপ
ডোমেইন example.com, «সিঙ্গেল-পেজ অ্যাপ», HTTPS, HTTP/2 এবং «www. ঠিকানাতেও সাড়া দিন এবং রিডাইরেক্ট করুন» টিক দিয়ে (সংক্ষিপ্ত রাখতে Gzip কম্প্রেশন, নিরাপত্তা হেডার ও স্ট্যাটিক ফাইলের দীর্ঘ ক্যাশ বন্ধ রেখে) জেনারেটর তিনটি server ব্লক লেখে:
- পোর্ট 80 দুটি নামেই সাড়া দেয়, সার্টিফিকেট নবায়নের জন্য
/.well-known/acme-challenge/নাগালে রাখে এবং বাকি সবকিছু 301 দিয়েhttps://example.com$request_uri-তে পাঠায়। www.example.com-এর জন্য পোর্ট 443 একই সার্টিফিকেট ব্যবহার করে এবং খালি ডোমেইনে 301 ফেরত দেয়।example.com-এর জন্য পোর্ট 443 সাইট পরিবেশন করে:
root /var/www/example.com;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
দুটি HTTPS ব্লকই /etc/letsencrypt/live/example.com/fullchain.pem ও privkey.pem-এর দিকে নির্দেশ করে, TLS 1.2 ও 1.3 অনুমোদন করে এবং এক দিনের সেশন টাইমআউটসহ 10 MB শেয়ার্ড সেশন ক্যাশ ব্যবহার করে। try_files লাইনটিই /settings-এর মতো ক্লায়েন্ট-সাইড রুটে রিলোড করলে 404-এর বদলে অ্যাপ ফেরত দেয়।
সচরাচর জিজ্ঞাসিত প্রশ্ন
nginx -t কেন http2 প্যারামিটারটি ডিপ্রিকেটেড বলে সতর্ক করে?
nginx 1.25.1 থেকে আলাদা http2 on; ডিরেক্টিভটি পছন্দনীয়, কিন্তু Ubuntu 24.04 ও অন্যান্য সংস্করণের সঙ্গে আসা 1.24 এটি বোঝে না। listen ... http2 রূপটি সর্বত্র কাজ করে; নতুন সংস্করণগুলো শুধু একটি সতর্কতা দেখায়।
সার্টিফিকেটে কি www অন্তর্ভুক্ত থাকতে হবে?
হ্যাঁ, www রিডাইরেক্ট চালু থাকলে। দুই নামের জন্য অনুরোধ করুন, যেমন certbot -d example.com -d www.example.com।
আপলোডে 413 Request Entity Too Large ত্রুটি হচ্ছে?
nginx ডিফল্টভাবে 1 MB-এর request body অনুমোদন করে। আপনার প্রয়োজনমতো সর্বোচ্চ আপলোড আকার সেট করুন, যেমন 100।
প্রক্সির মাধ্যমে WebSocket সংযোগ ব্যর্থ হচ্ছে?
প্রক্সিকে Upgrade এবং Connection হেডার ফরওয়ার্ড করতে হবে। WebSocket সমর্থনে টিক দিলে এগুলো যোগ হয় এবং read timeout এক ঘণ্টায় বাড়িয়ে দেয়।
গোপনীয়তা
এই টুলটি পুরোপুরি আপনার ব্রাউজারে চলে। আপনার ফাইল ও লেখা আপনার ডিভাইসেই প্রসেস হয় এবং কখনো আমাদের সার্ভারে আপলোড হয় না।