अगले लेख में हम Apache Virtual Hosts पर एक नज़र डालने जा रहे हैं। सबसे पहले, यह समझाना आवश्यक है एक वर्चुअल होस्ट एक अपाचे कॉन्फ़िगरेशन निर्देश है जो हमें एक सर्वर पर एक से अधिक वेबसाइट चलाने की अनुमति देगा। तथ्य यह है कि वे एक ही भौतिक सर्वर पर चल रहे हैं अंत उपयोगकर्ता के लिए स्पष्ट नहीं है।
वर्चुअल होस्ट्स के साथ हम साइट की जड़ को निर्दिष्ट करने में सक्षम होंगे (निर्देशिका जिसमें वेबसाइट फ़ाइलें हैं), प्रत्येक साइट के लिए एक अलग सुरक्षा नीति बनाएं, विभिन्न एसएसएल प्रमाणपत्रों का उपयोग करें और बहुत कुछ।
निम्नलिखित पंक्तियों में हम देखेंगे Ubuntu 20.04 पर अपाचे वर्चुअल होस्ट को कॉन्फ़िगर कैसे करें, और इसके लिए हमें निरंतरता से पहले निम्नलिखित आवश्यकताओं को पूरा करना चाहिए; एक या एक से अधिक डोमेन नाम जो आपके सार्वजनिक सर्वर के आईपी और उबंटू पर स्थापित अपाचे को इंगित करते हैं।
निर्देशिका संरचना बनाएँ
दस्तावेज़ रूट निर्देशिका है जहाँ अनुरोधों के जवाब में डोमेन नाम के लिए वेबसाइट फ़ाइलों को संग्रहीत और सेवा की जाती है। हम रूट को उस स्थान पर स्थापित कर सकते हैं जो हमें रुचता है प्रत्येक डोमेन पर होस्ट किया गया अपाचे सर्वर इसका दस्तावेज़ रूट सेट किया जाएगा / var / www / डोमेन-नाम / public_html.
हम जा रहे हैं दो डोमेन के लिए रूट निर्देशिका बनाकर प्रारंभ करें जिसका मैं इस उदाहरण में उपयोग करने जा रहा हूं:
sudo mkdir -p /var/www/dominio1.com/public_html sudo mkdir -p /var/www/dominio2.com/public_html
भी हम एक फ़ाइल बनाएंगे सूचकांक प्रत्येक डोमेन के दस्तावेज़ रूट निर्देशिका के भीतर। यह तब दिखाया जाएगा जब हम ब्राउज़र से डोमेन पर जाएँ:
sudo vim /var/www/dominio1.com/public_html/index.html
फ़ाइल के अंदर, हम निम्नलिखित सामग्री को चिपकाने जा रहे हैं:
<!DOCTYPE html> <html lang="es"> <head> <meta charset="utf-8">dominio1</title> </head> <body> <h1>Home del dominio1</h1> </body> </html>
दूसरे डोमेन के लिए, हम इसकी index.html फ़ाइल को संपादित करेंगे और इसे जोड़ेंगे निम्नलिखित सामग्री:
sudo vim /var/www/dominio2.com/public_html/index.html
<!DOCTYPE html> <html lang="es"> <head> <meta charset="utf-8">dominio2</title> </head> <body> <h1>Home del dominio2</h1> </body> </html>
चूंकि उपरोक्त कमांड सुडो के साथ चलाए जाते हैं, इसलिए नई बनाई गई फाइलें और निर्देशिकाएं रूट के स्वामित्व में हैं। अनुमति की समस्याओं से बचने के लिए, हम इन निर्देशिका के भीतर डोमेन और सभी फाइलों की मूल निर्देशिका के स्वामित्व को अपाचे उपयोगकर्ता (www-data) में बदलने जा रहे हैं:
sudo chown -R www-data: /var/www/dominio1.com sudo chown -R www-data: /var/www/dominio2.com
वर्चुअल होस्ट बनाएं
उबंटू सिस्टम पर, Apache के लिए वर्चुअल होस्ट कॉन्फ़िगरेशन फ़ाइल निर्देशिका में स्थित हैं / Etc / apache2 / साइटों से उपलब्ध। निर्देशिका में प्रतीकात्मक लिंक बनाकर उन्हें सक्षम किया जा सकता है / Etc / apache2 / साइटों सक्षम, जो अपाचे स्टार्टअप के दौरान पढ़ता है।
हम कॉन्फ़िगरेशन फ़ाइलों को नाम दे सकते हैं जो हम चाहते हैं। परंतु वर्चुअल होस्ट कॉन्फ़िगरेशन फ़ाइल के नाम के रूप में डोमेन नाम का उपयोग करने के लिए सबसे अच्छा अभ्यास है। अब हम अपने पसंदीदा टेक्स्ट एडिटर को खोलने जा रहे हैं और बुनियादी विन्यास फाइल बना सकते हैं। उदाहरण में मैं सिर्फ domain1 के लिए कोड दिखाने जा रहा हूँ:
sudo vim /etc/apache2/sites-available/dominio1.com.conf
अंदर हम निम्नलिखित की तरह कुछ जोड़ देंगे, लेकिन domain2 के लिए, हमें निम्नलिखित कोड में domain1 को domain2 में बदलना होगा:
<VirtualHost *:80> ServerName dominio1.com ServerAlias www.dominio1.com ServerAdmin webmaster@dominio1.com DocumentRoot /var/www/dominio1.com/public_html <Directory /var/www/dominio1.com/public_html> Options -Indexes +FollowSymLinks AllowOverride All </Directory> ErrorLog ${APACHE_LOG_DIR}/dominio1.com-error.log CustomLog ${APACHE_LOG_DIR}/dominio1.com-access.log combined </VirtualHost>
- सर्वर का नाम → आप उस डोमेन को इंगित करने जा रहे हैं जो इस वर्चुअल होस्ट कॉन्फ़िगरेशन से मेल खाना चाहिए। पूर्व डोमेन नाम होना चाहिए.
- सर्वर का → सभी अन्य डोमेन या उप डोमेन जो इस वर्चुअल होस्ट के लिए मेल खाना चाहिए, जैसे www।
- DocumentRoot → यहाँ है उस निर्देशिका को इंगित करेगा जहाँ से Apache फ़ाइलों की सेवा करेगा.
- विकल्प → यह निर्देश एक विशिष्ट निर्देशिका में सर्वर के कार्य क्या हैं, इसे नियंत्रित करता है.
- अनुक्रमित → निर्देशिका लिस्टिंग से बचें।
- FollowSymLinks → जब यह विकल्प सक्षम हो जाता है, तो Apache प्रतीकात्मक लिंक का अनुसरण करेगा।
- अवहेलना की अनुमति दें → आप क्या निर्दिष्ट करने जा रहे हैं .Htaccess फ़ाइल में घोषित निर्देश कॉन्फ़िगरेशन निर्देशों को ओवरराइड कर सकते हैं.
- त्रुटि लॉग, कस्टम लॉग → यहाँ आप निर्दिष्ट करेंगे लॉग फ़ाइल स्थान.
एक बार फाइलें सेव हो जाने के बाद, नई वर्चुअल होस्ट फाइल को सक्षम करने के लिए, हम जा रहे हैं वर्चुअल होस्ट फ़ाइल से साइट-सक्षम निर्देशिका के लिए एक प्रतीकात्मक लिंक बनाएं। हम स्क्रिप्ट का उपयोग करके ऐसा करेंगे a2ensite:
sudo a2ensite dominio1.com
दूसरा विकल्प है मैन्युअल रूप से एक प्रतीकात्मक लिंक बनाएं जैसा कि यह निम्नलिखित में दिखाया गया है:
sudo ln -s /etc/apache2/sites-available/dominio1.com.conf /etc/apache2/sites-enabled/
एक बार यह हो जाने के बाद, हम कर सकते हैं सिंटैक्स त्रुटियों के लिए कॉन्फ़िगरेशन का परीक्षण करें साथ:
sudo apachectl configtest
यदि कोई त्रुटि नहीं है, तो टर्मिनल में हमें निम्न जैसा परिणाम दिखाई देगा:
हम जारी रखते हैं अपाचे सेवा को फिर से शुरू करना परिवर्तन प्रभावी होने के लिए:
sudo systemctl restart apache2
अंत में, सत्यापित करने के लिए कि सब कुछ उम्मीद के मुताबिक काम करता है, हम URL खोलेंगे http://dominio1.com ब्राउज़र में और हमें domain1 के index.html पेज की सामग्री को देखना चाहिए:
वर्चुअल होस्ट के साथ हम एक ही Ubuntu सर्वर पर कई डोमेन होस्ट कर सकते हैं। हम अपने सभी डोमेन के लिए अतिरिक्त वर्चुअल होस्ट बनाने के लिए पिछली लाइनों में वर्णित चरणों को दोहरा सकते हैं।
इस लेख में उजागर बात केवल वर्चुअल होस्ट और उबंटू में इसके कॉन्फ़िगरेशन के बारे में एक बुनियादी व्याख्या है। यह अधिक जानकारी प्राप्त करें अपाचे वेबसाइट.
हैलो, इसने मुझे वर्चुअल होस्ट बनाने में सक्षम होने में बहुत मदद की, लेकिन apachectl confitest चलाते समय मुझे निम्न त्रुटि मिली: "AH00558: apache2: 127.0.1.1 का उपयोग करके सर्वर के पूर्णतः योग्य डोमेन नाम को विश्वसनीय रूप से निर्धारित नहीं कर सका। इस संदेश को दबाने के लिए विश्व स्तर पर 'सर्वरनाम' निर्देश सेट करें
सिंटेक्स ओके»
मुझे नहीं पता कि क्या गलत हो सकता है