কুইক স্টার্ট: ১৫ মিনিটে একটি ওয়েবসাইট
একটি পরিষ্কার মেশিন থেকে HTTPS সার্টিফিকেটসহ কার্যকর nginx সাইট পর্যন্ত: ইনস্টলেশন, সাইট ডিরেক্টরি, ডোমেইন, ফায়ারওয়াল, এবং যাচাই।
আপডেট: ২৩ আগস্ট, ২০২৬
পরিস্থিতি: একটি নতুন Debian বা Ubuntu ইনস্টল, আপনার নিজের ডোমেইন, এবং লক্ষ্য হলো HTTPS-এ আপনার পেজ দেখা। সব কমান্ড SSH-এর মাধ্যমে root হিসেবে চালানো হয়।
1. nginx ইনস্টল করুন
apt update && apt install -y nginx
systemctl enable --now nginx
আপনার ব্রাউজারে http://your-address খুলুন — একটি স্বাগত পেজ দেখা উচিত। যদি না দেখা যায়, ফায়ারওয়াল পরীক্ষা করুন (ধাপ 3)।
AlmaLinux-এ, apt-এর বদলে dnf ব্যবহার করুন; দেখুন AlmaLinux।
2. ডোমেইন পয়েন্ট করুন
আপনার রেজিস্ট্রারের প্যানেলে, “Overview” ট্যাব থেকে মেশিনের অ্যাড্রেস দিয়ে একটি A রেকর্ড যোগ করুন:
example.com. A 203.0.113.10
www.example.com. A 203.0.113.10
ডোমেইনটি সঠিক অ্যাড্রেসে রিজলভ হচ্ছে কিনা পরীক্ষা করুন:
apt install -y dnsutils
dig +short example.com
রেকর্ড আপডেট হতে এক মিনিট থেকে কয়েক ঘণ্টা লাগতে পারে। যতক্ষণ dig পুরোনো অ্যাড্রেস ফেরত দেয়, ততক্ষণ আপনি সার্টিফিকেট ইস্যু করতে পারবেন না।
3. পোর্ট খুলুন
apt install -y ufw
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
প্রথমে
allow OpenSSH, তারপরenable। উল্টো ক্রমে করলে আপনার অ্যাক্সেস কেটে যাবে, এবং আপনাকে text console দিয়ে লগইন করতে হবে।
4. একটি সাইট তৈরি করুন
mkdir -p /var/www/example.com
echo '<h1>Works</h1>' > /var/www/example.com/index.html
chown -R www-data:www-data /var/www/example.com
/etc/nginx/sites-available/example.com-এ কনফিগারেশন:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
এনেবল করুন এবং প্রয়োগ করুন:
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx
nginx -t বাধ্যতামূলক: এটি রিস্টার্টের আগে কনফিগ পরীক্ষা করে। যদি আউটপুট syntax is ok এবং test is successful দিয়ে শেষ না হয়, তাহলে সার্ভিস রিস্টার্ট করবেন না — প্রথমে ত্রুটি ঠিক করুন।
5. একটি সার্টিফিকেট ইস্যু করুন
apt install -y certbot python3-certbot-nginx
certbot --nginx -d example.com -d www.example.com
Certbot একটি ইমেইল চাইবে, একটি listen 443 ssl ব্লক যোগ করবে, এবং একটি HTTP রিডাইরেক্ট সেট আপ করবে। রিনিউয়াল স্বয়ংক্রিয়ভাবে সেট আপ হয়; আপনি এভাবে পরীক্ষা করতে পারেন:
certbot renew --dry-run
সবচেয়ে বেশি যা ভুল হয়
| লক্ষণ | কারণ |
|---|---|
| ব্রাউজার সাইট খোলে না | ufw-তে পোর্ট 80 বা 443 বন্ধ |
Certbot: Timeout during connect | ডোমেইন এখনও মেশিনে পয়েন্ট করছে না, বা পোর্ট 80 বন্ধ |
502 Bad Gateway | nginx এমন একটি অ্যাপ্লিকেশনে প্রক্সি করছে যা চলছে না — আপনার সার্ভিসের জন্য systemctl status পরীক্ষা করুন |
403 Forbidden | ডিরেক্টরিতে অনুমতি নেই, বা index.html অনুপস্থিত |
| আপনার পেজের বদলে ডিফল্ট nginx পেজ | /etc/nginx/sites-enabled/default সরানো হয়নি |
এই যেকোনো সমস্যার লগ:
tail -n 50 /var/log/nginx/error.log
journalctl -u nginx -n 50 --no-pager
এরপর, আপনি যদি এখনও না করে থাকেন, তাহলে first-hour checklist ব্যবহার করে প্রাথমিক নিরাপত্তার ব্যবস্থা নেওয়া উচিত।