शेयर्ड होस्टिंग आसान है, लेकिन VPS आपको स्पीड, रूट एक्सेस और बिना किसी शोर मचाने वाले पड़ोसियों की सुविधा देता है। यह गाइड एक नए Ubuntu 24.04 या 22.04 सर्वर को Nginx की मदद से लगभग बीस मिनट में लाइव HTTPS वेबसाइट तक पहुँचाती है। हर कमांड जस की तस कॉपी की जा सकती है।
आपको क्या चाहिए
- कम से कम 1 vCPU और 1 GB RAM वाला VPS (ज़्यादातर छोटी साइटों के लिए हमारे बेसिक प्लान काफ़ी हैं)।
- सर्वर के IP पते की ओर इशारा करता हुआ डोमेन नाम (हमारी गाइड VPS पर डोमेन पॉइंट करना देखें)।
- sudo यूज़र के रूप में SSH एक्सेस। अगर सर्वर बिल्कुल नया है, तो पहले बुनियादी सुरक्षा कर लें।
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. सर्वर ब्लॉक जोड़ें
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. Let's Encrypt से मुफ़्त HTTPS जोड़ें
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
Certbot आपके सर्वर ब्लॉक को एडिट करता है, 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हटाएँ और रीलोड करें।