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


16

हमारे LAN पर मैंने Apache नाम-आधारित वर्चुअल होस्टिंग के लिए उनका उपयोग करने के इरादे से DNS सर्वर में कई 'नकली' TLDs सेट किए हैं। मैं इसे Ubuntu-10.04 LAMP सर्वर पर मास-वर्चुअल-होस्टिंग (यानी VirtualDocumentRoot) के साथ जोड़ना चाहूंगा।

हालाँकि, मैं इसे सही vhost का चयन करने के लिए नहीं प्राप्त कर सकता हूँ!

यहाँ अपाचे विन्यास का सारांश दिया गया है:

NameVirtualHost 10.10.0.205

<VirtualHost 10.10.0.205>
   ServerName *.test
   VirtualDocumentRoot /var/www/%-3.0.%-2/test/%1/
   CustomLog /var/log/apache2/access.log vhost_combined
</VirtualHost>

<VirtualHost 10.10.0.205>
   ServerName *.dev
   VirtualDocumentRoot /var/www/%-3.0.%-2/dev/%1/
   CustomLog /var/log/apache2/access.log vhost_combined
</VirtualHost>

एक होस्टनाम जैसे कि www.domain.com.dev , सही ढंग से 10.10.0.205 का समाधान करता है, लेकिन हमेशा नीचे वाले के बजाय शीर्ष vhost का चयन करता है, जो अधिक निकटता से मेल खाता है।

मैं इस धारणा के तहत था कि Apache सबसे पहले किसी दिए गए IP के लिए शीर्ष vhost में डिफ़ॉल्ट करने से पहले ServerName से मेल खाने की कोशिश करेगा। मैं क्या गलत कर रहा हूं? या यह संभव नहीं है और क्या मुझे प्रत्येक TLD के लिए एक और आईपी का उपयोग करना चाहिए?

Apachectl -S आउटपुट (छंटनी):

10.10.0.205:*          is a NameVirtualHost
    default server *.test
    port * namevhost *.test
    port * namevhost *.dev

जवाबों:


40

अकेले के ServerAliasबजाय, उपयोग करें ServerName:

ServerName somename.dev

ServerAlias *.dev


3
हाल ही में अपाचे संस्करण भी Servername में वाइल्डकार्ड की अनुमति नहीं देंगे, और त्रुटि आपको इसके बजाय ServerAlias ​​का उपयोग करने के लिए कहती है।
क्वेंटिन स्कूसन

बहुत बढ़िया। यह जल्दी और बात थी। डिफ ने मुझे समय बचाया। धन्यवाद।
कला गीगेल

4

यदि यह मदद कर सकता है, तो बस थोड़ा सा मो का जवाब पूरा करने के लिए:

ServerAlias ​​में वाइल्डकार्ड आंशिक डोमेन नामों पर भी काम करता है, जैसे कि

ServerName somename.dev

ServerAlias *-mysite.dev

यह हाल ही में मेरे जीवन ^^ बचाया (प्रत्येक उप अनुप्रयोग के लिए उप डोमेन के साथ एक मुख्य साइट जैसे admin-somename.dev, bo-somename.dev, api-somename.dev...)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.