Apache2 डोमेन नाम के आधार पर विभिन्न सामग्रियों की सेवा का समर्थन करता है, भले ही वे सभी डोमेन एक ही आईपी पते पर हल हों। डोमेन नामों में से प्रत्येक को एक वर्चुअल होस्ट द्वारा नियंत्रित किया जाता है , इस प्रकार नाम-आधारित वर्चुअल होस्ट ।
यहाँ दो डोमेन के लिए एक नमूना विन्यास है:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.yourfirstdomain.tld
DocumentRoot /www/yourfirstdomain.tld/
</VirtualHost>
<VirtualHost *:80>
ServerName www.yourseconddomain.tld
DocumentRoot /www/yourseconddomain.tld/
</VirtualHost>
आपको नाम-आधारित वर्चुअल होस्ट समर्थन पर आधिकारिक दस्तावेज यहां मिलेंगे ।
हालाँकि, कृपया ध्यान दें कि यह केवल सादे HTTP कनेक्शन के साथ काम करेगा, HTTPS (HTTP ओवर एसएसएल) के साथ नहीं: नाम-आधारित वर्चुअल होस्ट यह जानने के लिए निर्भर है कि किस नाम से अनुरोध किया जा रहा है, लेकिन यह जानकारी अपाचे द्वारा एन्क्रिप्टेड एसएसएल तक नहीं जानी जा सकती है कनेक्शन स्थापित है।
अगर आपको अपना सेटअप HTTPS के साथ भी काम करने की आवश्यकता है, तो आपको SSL प्रोटोकॉल के विस्तार पर सर्वर नाम इंडिकेशन (SNI) ( RFC4366 ) नाम से भरोसा करना होगा । मूल रूप से, एसएनआई-सक्षम ग्राहक (पूर्व: वेब ब्राउज़र) एन्क्रिप्टेड एसएसएल कनेक्शन स्थापित करते समय एक अतिरिक्त सादा पाठ जानकारी जोड़ते हैं, जिससे सर्वर को एसएसएल कनेक्शन तैयार होने से पहले अनुरोध किए जाने वाले नाम को जानने की अनुमति मिलती है।
सभी ब्राउज़र अभी तक SNI का समर्थन नहीं करते हैं। लेखन के समय और विकिपीडिया के अनुसार, ये करते हैं:
- Windows Vista या उच्चतर पर Internet Explorer 7 या बाद का संस्करण (XP, यहां तक कि IE 8 पर भी काम नहीं करता है)
- मोज़िला फ़ायरफ़ॉक्स 2.0 या बाद में
- ओपेरा 8.0 या बाद में (टीएलएस 1.1 प्रोटोकॉल सक्षम होना चाहिए)
- Android पर ओपेरा मोबाइल कम से कम 10.1 बीटा संस्करण
- Google Chrome (विस्टा या उच्चतर, Chrome 6 पर XP या नया, OS X 10.5.7 या उच्चतर Chrome 5.0.342.1 या नए पर)
- सफारी 2.1 या बाद में (मैक ओएस एक्स 10.5.6 या उच्चतर और विंडोज विस्टा या उच्चतर)
- कोनेकर / केडीई 4.7 या बाद का
- Apple iOS 4.0 या बाद के संस्करण में MobileSafari
- एंड्रॉइड डिफ़ॉल्ट ब्राउज़र हनीकॉम्ब (v3.x) या नए पर
- विंडोज फोन 7
- मैमो पर माइक्रो बी
कई नाम-आधारित वर्चुअल होस्ट सुलभ ट्रेंच HTTPS की मेजबानी करने के लिए आपको mod_ssl को सक्षम करने और उदाहरण के रूप में एक समान कॉन्फ़िगरेशन जोड़ने की आवश्यकता है:
Listen 443
NameVirtualHost *:443
# Accept connections for these vhosts from non-SNI clients
# Clients without SNI will be handled by the first defined vhost.
# If you only want SNI-enabled client, put on instead
SSLStrictSNIVHostCheck off
<VirtualHost *:443>
ServerName www.yourfirstdomain.tld
DocumentRoot /www/yourfirstdomain.tld/
</VirtualHost>
<VirtualHost *:443>
ServerName www.yourseconddomain.tld
DocumentRoot /www/yourseconddomain.tld/
</VirtualHost>
याद रखें कि SSL का उपयोग करने से आपको अपने डोमेन के लिए SSL प्रमाणपत्र खरीदने की आवश्यकता होती है - या कुछ ऑटो-हस्ताक्षरित लोगों को उत्पन्न करने के लिए, और SSL कनेक्शन के लिए उन्हें उपयोग करने के लिए Apache को कॉन्फ़िगर करने के लिए।