14. एक ही Ubuntu सर्वर पर कई वेबसाइट होस्ट करना: उपयोगी सुझाव

परिचय

एक ही Ubuntu सर्वर पर कई वेबसाइट होस्ट करना डेवलपर, छोटे व्यवसायों और शौकीनों के लिए एक किफ़ायती समाधान है। इस मार्गदर्शिका में आप वर्चुअल होस्ट को Apache और Nginx में सेट अप करके एक ही सर्वर पर कई वेबसाइट होस्ट करना सीखेंगे। इस ट्यूटोरियल के अंत तक, आप अपने सर्वर को कई डोमेन या सबडोमेन को कुशलता से संभालने के लिए कॉन्फ़िगर कर सकेंगे।


पिछले लेख:

01. Ubuntu सर्वर का परिचय – SysOSX: AI & Cloud

02. अपना पहला Ubuntu सर्वर कैसे सेट करें: शुरुआती गाइड – SysOSX: AI & Cloud

03. Ubuntu सर्वर के लिए Linux कमांड लाइन में महारत – SysOSX: AI & Cloud

04. Ubuntu सर्वर पर उपयोगकर्ता और अनुमतियाँ प्रबंधित करना: व्यापक गाइड – SysOSX: AI & Cloud

05. Ubuntu सर्वर के लिए नेटवर्किंग की बुनियादी बातें: व्यापक गाइड – SysOSX: AI & Cloud

06. Ubuntu सर्वर पर सॉफ़्टवेयर इंस्टॉल और प्रबंधित करना: पूरी गाइड – SysOSX: AI & Cloud

07.Ubuntu सर्वर को पैच और अपडेट करना: व्यापक गाइड – SysOSX: AI & Cloud

08. अपने Ubuntu सर्वर को सुरक्षित करें: हार्डनिंग और सुरक्षा के व्यावहारिक चरण – SysOSX: AI & Cloud

09. Ubuntu सर्वर ऑडिटिंग और लॉगिंग

10. Ubuntu सर्वर के लिए सिस्टम मॉनिटरिंग टूल: व्यापक गाइड – SysOSX: AI & Cloud

11. Ubuntu सर्वर के लिए केंद्रीकृत लॉगिंग: ज़रूर पढ़ने वाली गाइड – SysOSX: AI & Cloud

12. Ubuntu सर्वर के लिए ऑडिट और अनुपालन: सर्वोत्तम प्रथाएँ – SysOSX: AI & Cloud

13. होस्टिंग और वेब एप्लिकेशन के लिए अपना Ubuntu सर्वर सेट करना: अंतिम गाइड – SysOSX: AI & Cloud



पूर्व-आवश्यकताएँ

इस मार्गदर्शिका का पालन करने के लिए, सुनिश्चित करें कि आपके पास है:

  • एक Ubuntu सर्वर (संस्करण 20.04 या बाद का सुझाया जाता है)।
  • अधिकारों ( sudo ) वाला उपयोगकर्ता खाता।
  • आपके सर्वर के IP पते की ओर इशारा करने वाले कई डोमेन नाम।
  • Linux कमांड का बुनियादी ज्ञान।

भाग 1: Apache के साथ कई वेबसाइट होस्ट करना


चरण 1: Apache वेब सर्वर इंस्टॉल करें

यदि Apache पहले से इंस्टॉल नहीं है, तो निम्न कमांड चलाएँ:

sudo apt update && sudo apt install apache2 -y


चरण 2: प्रत्येक वेबसाइट के लिए वर्चुअल होस्ट सेट करें

Apache एक सर्वर से कई वेबसाइट सर्व करने के लिए वर्चुअल होस्ट इस्तेमाल करता है। प्रत्येक वेबसाइट की अपनी वर्चुअल होस्ट कॉन्फ़िगरेशन फ़ाइल होगी।

वेबसाइट के लिए निर्देशिकाएँ बनाएँ

  • प्रत्येक वेबसाइट के लिए अलग-अलग निर्देशिकाएँ बनाएँ:
sudo mkdir -p /var/www/website1.com /var/www/website2.com
  • इन निर्देशिकाओं का स्वामित्व अपने उपयोगकर्ता खाते को सौंपें:
sudo chown -R $USER:$USER /var/www/website1.com /var/www/website2.com

वर्चुअल होस्ट कॉन्फ़िगरेशन फ़ाइलें बनाएँ

  • पहली वेबसाइट के लिए कॉन्फ़िगरेशन फ़ाइल बनाएँ:
sudo nano /etc/apache2/sites-available/website1.com.conf
  • निम्न कॉन्फ़िगरेशन जोड़ें:
<VirtualHost *:80>
    ServerName website1.com
    ServerAlias www.website1.com
    DocumentRoot /var/www/website1.com
    ErrorLog ${APACHE_LOG_DIR}/website1_error.log
    CustomLog ${APACHE_LOG_DIR}/website1_access.log combined
</VirtualHost>

  • दूसरी वेबसाइट के लिए कॉन्फ़िगरेशन फ़ाइल बनाएँ:
sudo nano /etc/apache2/sites-available/website2.com.conf
  • निम्न कॉन्फ़िगरेशन जोड़ें:
<VirtualHost *:80>
    ServerName website2.com
    ServerAlias www.website2.com
    DocumentRoot /var/www/website2.com
    ErrorLog ${APACHE_LOG_DIR}/website2_error.log
    CustomLog ${APACHE_LOG_DIR}/website2_access.log combined
</VirtualHost>

वर्चुअल होस्ट इनेबल करें

  • वर्चुअल होस्ट कॉन्फ़िगरेशन इनेबल करें:
sudo a2ensite website1.com.conf
sudo a2ensite website2.com.conf
  • बदलाव लागू करने के लिए Apache रीलोड करें:
sudo systemctl reload apache2

चरण 3: Apache कॉन्फ़िगरेशन टेस्ट करें

  • प्रत्येक वेबसाइट के लिए एक साधारण index.html फ़ाइल बनाएँ:
echo "<h1>Welcome to Website 1</h1>" > /var/www/website1.com/index.html
echo "<h1>Welcome to Website 2</h1>" > /var/www/website2.com/index.html


  • सेटअप सत्यापित करने के लिए अपने ब्राउज़र में http://website1.com और http://website2.com पर जाएँ।

चरण 4: SSL/TLS से वेबसाइट सुरक्षित करें

Certbot इंस्टॉल करें

Apache प्लगइन के साथ Certbot इंस्टॉल करें:

sudo apt install certbot python3-certbot-apache -y

SSL सर्टिफिकेट प्राप्त करें

प्रत्येक वेबसाइट के लिए Certbot चलाएँ:

sudo certbot --apache -d website1.com -d www.website1.com
sudo certbot --apache -d website2.com -d www.website2.com

Certbot दोनों वेबसाइट के लिए SSL अपने आप कॉन्फ़िगर करेगा और HTTP ट्रैफ़िक को HTTPS पर रीडायरेक्ट करेगा।


भाग 2: Nginx के साथ कई वेबसाइट होस्ट करना


चरण 1: Nginx वेब सर्वर इंस्टॉल करें

यदि Nginx पहले से इंस्टॉल नहीं है, तो चलाएँ:

sudo apt update && sudo apt install nginx -y


चरण 2: प्रत्येक वेबसाइट के लिए सर्वर ब्लॉक सेट करें

Nginx एक सर्वर से कई वेबसाइट सर्व करने के लिए सर्वर ब्लॉक इस्तेमाल करता है (Apache में वर्चुअल होस्ट के समान)।

वेबसाइट के लिए निर्देशिकाएँ बनाएँ

  • प्रत्येक वेबसाइट के लिए अलग-अलग निर्देशिकाएँ बनाएँ:
sudo mkdir -p /var/www/website1.com /var/www/website2.com
  • इन निर्देशिकाओं का स्वामित्व अपने उपयोगकर्ता खाते को सौंपें:
sudo chown -R $USER:$USER /var/www/website1.com /var/www/website2.com

सर्वर ब्लॉक कॉन्फ़िगरेशन फ़ाइलें बनाएँ

  • पहली वेबसाइट के लिए कॉन्फ़िगरेशन फ़ाइल बनाएँ:
sudo nano /etc/nginx/sites-available/website1.com

  • निम्न कॉन्फ़िगरेशन जोड़ें:
server {
    listen 80;
    server_name website1.com www.website1.com;

    root /var/www/website1.com;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }

    error_log /var/log/nginx/website1_error.log;
    access_log /var/log/nginx/website1_access.log;
}

  • दूसरी वेबसाइट के लिए कॉन्फ़िगरेशन फ़ाइल बनाएँ:
sudo nano /etc/nginx/sites-available/website2.com

  • निम्न कॉन्फ़िगरेशन जोड़ें:
server {
    listen 80;
    server_name website2.com www.website2.com;

    root /var/www/website2.com;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }

    error_log /var/log/nginx/website2_error.log;
    access_log /var/log/nginx/website2_access.log;
}

सर्वर ब्लॉक इनेबल करें

  • सर्वर ब्लॉक इनेबल करने के लिए सिंबॉलिक लिंक बनाएँ:
sudo ln -s /etc/nginx/sites-available/website1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/website2.com /etc/nginx/sites-enabled/

  • Nginx कॉन्फ़िगरेशन टेस्ट करें:
sudo nginx -t
  • बदलाव लागू करने के लिए Nginx रीलोड करें:
sudo systemctl reload nginx

चरण 3: Nginx कॉन्फ़िगरेशन टेस्ट करें

  • प्रत्येक वेबसाइट के लिए एक साधारण index.html फ़ाइल बनाएँ:
echo "<h1>Welcome to Website 1</h1>" > /var/www/website1.com/index.html
echo "<h1>Welcome to Website 2</h1>" > /var/www/website2.com/index.html

  • सेटअप सत्यापित करने के लिए अपने ब्राउज़र में http://website1.com और http://website2.com पर जाएँ।

चरण 4: SSL/TLS से वेबसाइट सुरक्षित करें

Certbot इंस्टॉल करें

Nginx प्लगइन के साथ Certbot इंस्टॉल करें:

sudo apt install certbot python3-certbot-nginx -y

SSL सर्टिफिकेट प्राप्त करें

प्रत्येक वेबसाइट के लिए Certbot चलाएँ:

sudo certbot --nginx -d website1.com -d www.website1.com
sudo certbot --nginx -d website2.com -d www.website2.com

Certbot दोनों वेबसाइट के लिए SSL अपने आप कॉन्फ़िगर करेगा और HTTP ट्रैफ़िक को HTTPS पर रीडायरेक्ट करेगा।


संदर्भ

निष्कर्ष

एक ही Ubuntu सर्वर पर कई वेबसाइट होस्ट करना वेब एप्लिकेशन या डोमेन प्रबंधित करने का एक व्यावहारिक और किफ़ायती तरीका है। चाहे आप Apache इस्तेमाल कर रहे हों या Nginx, इस प्रक्रिया में निर्देशिकाएँ सेट करना, वर्चुअल होस्ट या सर्वर ब्लॉक कॉन्फ़िगर करना और Certbot का उपयोग करके SSL/TLS सर्टिफिकेट से अपनी वेबसाइट सुरक्षित करना शामिल है। इस मार्गदर्शिका का पालन करके, आप कई डोमेन या सबडोमेन कुशलता से होस्ट कर सकते हैं, और यह सुनिश्चित कर सकते हैं कि आपका सर्वर स्केलेबिलिटी और सुरक्षा के लिए ऑप्टिमाइज़ है।

Apache और Nginx दोनों ही शक्तिशाली वेब सर्वर हैं, और इनके बीच चुनाव अक्सर आपकी विशिष्ट ज़रूरतों पर निर्भर करता है। Apache व्यापक कॉन्फ़िगरेशन विकल्प और संगतता देता है, जबकि Nginx प्रदर्शन और समवर्ती कनेक्शन संभालने में उत्कृष्ट है। आप जो भी चुनें, यह मार्गदर्शिका आपको कई वेबसाइट प्रभावी ढंग से प्रबंधित करने का बुनियादी ज्ञान देती है।


अगले विषय के लिए बने रहें: Ubuntu सर्वर पर स्टोरेज और डिस्क प्रबंधित करना इस आगामी मार्गदर्शिका में, आप डिस्क इनिशियलाइज़ेशन कॉन्फ़िगर करना, अलग-अलग फ़ाइल सिस्टम के लिए पार्टीशन बनाना और फ़ाइल सिस्टम में माउंट करने सहित डिस्क का विस्तार करना सीखेंगे। इसे चूकें नहीं!

7 thoughts on “14. Host Multiple Websites on a single Ubuntu Server: Useful tips”

टिप्पणी छोड़ें