एक नाम-आधारित वर्चुअलहोस्ट पर उप-डोमेन कैसे बनाएं?


27

मेरे पास नाम-आधारित होस्टिंग है, इसे कॉल करने देता है my.address.com। मेरे मित्र का 'सादा' पता है address.comऔर मुझे एक वर्चुअल मशीन दी है जिसे मैं एसएसएच के माध्यम से एक्सेस कर सकता हूं।

उन्होंने बंदरगाहों के साथ कुछ जादू किया और अब, अपाचे को स्थापित करने के बाद, मैं इसके /var/wwwमाध्यम से पहुंच सकता हूं my.address.com

तो, सवाल यह है कि मैं कैसे एक उपडोमेन बना सकता हूं test.my.address.com?

अपाचे की सुनो निर्देश के साथ कुछ जादू होना चाहिए , लेकिन मैं इसे समझ नहीं सकता। इसके अलावा, मुझे पता है कि अपाचे के साथ स्थानीय-उपलब्ध साइटों को कैसे बनाया जाए, लेकिन यह समान नहीं है।


आपको आवश्यकता नहीं होगी Listen, अपाचे आभासी मेजबानों को देखें: httpd.apache.org/docs/2.2/vhosts
Der Hochstapler

मुख्य सवाल बना हुआ है - ServerName निर्देश में क्या लिखना है?
स्काइथ्रैगॉन

जवाबों:


33

उप-डोमेन बनाने में सक्षम होने के लिए, आपको कई चीजें सुनिश्चित करनी होंगी:

डीएनएस

तो दूसरे के test.my.address.comपास पहुँच सकते हैं , उन्हें पहले उस नाम को अपनी वर्चुअल मशीन के आईपी पते पर हल करने में सक्षम होना चाहिए। वह कैसे किया जा सकता है?

आपके मित्र ने जो सबसे पहले किया था, वह जोन में एक रिकॉर्ड बनाना था address.com, जो myआपके वीएम के आईपी पते की ओर इशारा करता है।

अब तक सब ठीक है। लेकिन इससे क्या test.my? यह अभी तक एक प्रविष्टि नहीं हो सकता है।

आपका मित्र बस *.myज़ोन में जोड़ सकता है (और उसे उसी आईपी पते पर इंगित कर सकता है)। फिर सभी अनुरोध something.my.address.comआपके वीएम को भेजे जाएंगे। महान!

अपाचे वर्चुअल होस्ट

एक बार जब आपका वीएम पहुंच सकता है, तो अपाचे को यह जानना होगा कि अनुरोध को कैसे संभालना है। यह वह जगह है जहां हम Apache HTTP सर्वर के वर्चुअल होस्ट फीचर का उपयोग करते हैं ।

मैं आमतौर पर डेबियन पर चलता हूं, इसलिए मैं इसे एक उदाहरण कॉन्फ़िगरेशन के साथ समझाता हूं /etc/apache2/sites-available। चलो वहाँ एक फ़ाइल है जिसे कॉल किया गया है test.my.address.comऔर इसे जानकारी के साथ भरें।

<VirtualHost *:80>
        ServerName test.my.address.com
        ServerAdmin webmaster@my.address.com

        DocumentRoot /var/www/test.my.address.com/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/test.my.address.com/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/test.my.address.com.error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/test.my.address.com.access.log combined
</VirtualHost>

कुंजी सेटिंग इस फाइल के अंदर है ServerNameनिर्देश । यह अपाचे बताता है कि किस नाम से यह सर्वर उपलब्ध होना चाहिए। अतिरिक्त नाम ServerAlias ​​निर्देश के साथ दिए जा सकते हैं ।

यदि आप डेबियन का उपयोग कर रहे हैं, तो sudo a2ensite test.my.address.comआप फाइल बनाने के बाद भूल न जाएं sudo invoke-rc.d apache2 restart


बहुत बहुत धन्यवाद! :) मैंने अपना हिस्सा बनाया, और अपने हिस्से के बारे में दोस्त को ईमेल लिखा। फिर से धन्यवाद :)
scythargon

@ शत्रुघ्न: मेरा आनंद। हम यहां मदद करने के लिए हैं :)
डेर होकस्टाप्लर

जबकि मेरे दोस्त ने मेरा जवाब नहीं दिया, क्या आप, कृपया कर सकते हैं? मेरे बारे में क्या सोचा गया था कि यह कैसे काम करता है: http-request के लिए test.my.address.comजाता है my.address.comऔर फिर VM पर मेरा Apache सर्वर इसे संभालता है। लेकिन आपने कहा कि एड्रेस.कॉम पर DNS- सर्वर को इन test.myसब से पहले के बारे में और स्वतंत्र रूप से ज्ञान के बारे में पता होना चाहिए my, क्यों?
स्काइथ्रैगॉन

@scythargon: अपने सर्वर तक पहुंचने के लिए किसी भी HTTP अनुरोध के लिए, किसी भी ग्राहक को पहले यह पता लगाना होगा कि किस सर्वर को अनुरोध भेजा जाना है। तो hostname को मान्य होना चाहिए। अन्यथा उन्हें केवल "वह नाम मौजूद नहीं है" बताया जाएगा।
डेर होकस्टाप्लर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.