هاست اشتراکی ساده است، اما VPS سرعت، دسترسی root و نبود همسایههای پرمزاحمت را به شما میدهد. این راهنما یک سرور تازهٔ Ubuntu 24.04 یا 22.04 را در حدود بیست دقیقه با Nginx به یک وبسایت زندهٔ HTTPS تبدیل میکند. همهٔ دستورها را میتوانید همانطور که هست کپی کنید.
به چه چیزی نیاز دارید
- یک VPS با دستکم 1 vCPU و 1 GB رم (پلنهای پایهٔ ما برای بیشتر سایتهای کوچک کافیاند).
- یک نام دامنه که به آدرس IP سرور اشاره کند (راهنمای ما دربارهٔ اشاره دادن دامنه به VPS را ببینید).
- دسترسی SSH با یک کاربر sudo. اگر سرور کاملاً تازه است، ابتدا سختسازی پایه را انجام دهید.
1. نصب Nginx
sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx
آدرس IP سرور را در مرورگر باز کنید. باید صفحهٔ خوشامدگویی پیشفرض Nginx را ببینید. اگر نمیبینید، بررسی کنید که فایروال شما پورتهای 80 و 443 را مجاز کرده باشد:
sudo ufw allow "Nginx Full"
sudo ufw status
2. ساخت پوشهٔ سایت
sudo mkdir -p /var/www/example.com/html
sudo chown -R $USER:$USER /var/www/example.com
echo "<h1>It works</h1>" > /var/www/example.com/html/index.html
در همه جا example.com را با دامنهٔ خودتان جایگزین کنید.
3. افزودن server block
sudo nano /etc/nginx/sites-available/example.com
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
root /var/www/example.com/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
آن را فعال کنید، پیکربندی را آزمایش کنید و دوباره بارگذاری کنید:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
4. افزودن HTTPS رایگان با Let's Encrypt
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
Certbot بلاک server شما را ویرایش میکند، HTTP را به HTTPS هدایت میکند و تایمری نصب میکند که گواهی را خودکار تمدید میکند. تایمر را با systemctl list-timers | grep certbot بررسی کنید.
5. سریعتر کردن سایت
فشردهسازی و کش مرورگر را برای فایلهای ایستا روشن کنید. این را داخل بلاک server اضافه کنید:
gzip on;
gzip_types text/css application/javascript application/json image/svg+xml;
location ~* \.(css|js|png|jpg|jpeg|webp|svg|woff2)$ {
expires 30d;
add_header Cache-Control "public";
}
پس از آن Nginx را دوباره بارگذاری کنید. برای سایتهای پویا مانند WordPress، PHP-FPM را نصب کنید و درخواستهای .php را به آن بدهید، یا یک افزونهٔ کش جلوی آن بگذارید.
مشکلات رایج
- 403 Forbidden: Nginx نمیتواند پوشه را بخواند. مالکیت را بررسی کنید و مطمئن شوید همهٔ پوشههای والد اجرایی هستند (
chmod o+x). - خطای Certbot: دامنه هنوز به سرور اشاره نمیکند، یا پورت 80 مسدود است.
- صفحهٔ پیشفرض هنوز نمایش داده میشود: فایل
/etc/nginx/sites-enabled/defaultرا حذف کنید و دوباره بارگذاری کنید.