सवाल सर्वरनाम और सर्वरअलीज़ कैसे काम करता है?


वर्चुअल होस्ट कॉन्फ़िगरेशन का यह निम्न भाग है जिसे मुझे और स्पष्टीकरण की आवश्यकता है:

<VirtualHost *:80>
  # Admin email, Server Name (domain name), and any aliases
  ServerAdmin example@example.com
  ServerName  141.29.495.999
  ServerAlias example.com
...

यह और उदाहरण कॉन्फ़िगर है, जो मेरे पास वर्तमान में है (मेरे पास इस समय डोमेन नाम नहीं है)।

<VirtualHost *:80> - पोर्ट 80 से आईपी पर किए गए सभी HTTP अनुरोधों के लिए निम्न सेटिंग्स को अनुमति दें जिन पर इस सर्वर से संपर्क किया जा सकता है। उदाहरण के लिए, यदि सर्वर को एक से अधिक आईपी पर पहुंचा जा सकता है, तो आप इस निर्देश को दोनों के बजाय केवल एक को प्रतिबंधित कर सकते हैं।

ServerName - यदि HTTP अनुरोध का होस्ट हिस्सा इस नाम से मेल खाता है, तो अनुरोध को अनुमति दें। आम तौर पर यह एक डोमेन नाम होगा जो आईपी को मैप करता है, लेकिन इस मामले में HTTP अनुरोध होस्ट को इस आईपी से मेल खाना चाहिए।

ServerAlias - वैकल्पिक नाम सर्वर द्वारा स्वीकार किए जाते हैं।

मेरे लिए भ्रमित हिस्सा उपरोक्त परिदृश्य में है, अगर मैं सेट करता हूं ServerAlias mytestname.com और उसके बाद एक HTTP अनुरोध किया mytestname.com, काम करने के लिए सर्वर के आईपी को इंगित करने वाला एक DNS रिकॉर्ड होना होगा? किस मामले में, सर्वरअलीस बस मूल रूप से अतिरिक्त सर्वरनाम प्रविष्टियां है?

मान लें कि मेरे पास एक DNS प्रविष्टि थी foobar.com = 141.29.495.999 लेकिन फिर मैंने किया था ServerName = 141.29.495.999 तथा ServerAlias खाली था, इसका मतलब यह होगा कि हालांकि foobar.com को सही आईपी में हल किया गया है, क्योंकि foobar.com को स्वीकार करने का कोई संदर्भ नहीं है ServerName या ServerAlias?

या कुछ और। मैन मैं उलझन में हूँ।


53
2017-07-02 14:00


मूल


आप दूसरे शब्द के अंतिम पैराग्राफ में कुछ शब्द भूल गए। :-) - ThatGraemeGuy


जवाब:


इसके बारे में इस तरह से सोचें:

DNS फोन निर्देशिका / पीले पृष्ठ हैं। जब कोई आपके फोन को फोन करना चाहता है, तो वे आपका नाम देख सकते हैं और अपना फोन नंबर प्राप्त कर सकते हैं और उस फोन को कॉल कर सकते हैं। DNS वही करता है लेकिन कंप्यूटर के लिए - जब कोई जाना चाहता है www.example.com वे आईपी पते के लिए DNS से ​​पूछते हैं और फिर वे उस कंप्यूटर से संपर्क कर सकते हैं जिसमें आईपी पता है। वह जो है संकल्प माध्यम। आईपी ​​पते को हल करने के लिए अपाचे के साथ कुछ भी नहीं है; यह कड़ाई से एक DNS सवाल है।

ServerName तथा ServerAlias एक कंपनी की आंतरिक फोन सूची की तरह है। आपका वेबसर्वर स्विचबोर्ड है; यह सर्वर के सभी आने वाले कनेक्शन स्वीकार करेगा। फिर ग्राहक / कॉलर उन्हें बताएगा कि वे किस नाम की तलाश में हैं, और यह उस नाम को संभालने के लिए अपाचे कॉन्फ़िगरेशन में दिखेगा।

यदि नाम अपाचे कॉन्फ़िगरेशन में सर्वरनाम / सर्वरअलीस के रूप में सूचीबद्ध नहीं है, तो अपाचे हमेशा उन्हें पहले वर्चुअलहोस्ट सूचीबद्ध करेगा। या, यदि कोई वर्चुअलहोस्ट नहीं है, तो यह वही सामग्री देगा चाहे अनुरोध में होस्टनाम दिया गया हो।

ईटीए: तो, सामान्य कनेक्शन के लिए चरण-दर-चरण:

  1. आप लिखें http://www.example.com अपने ब्राउज़र में
  2. आपका कंप्यूटर अपने DNS रिज़ॉल्वर से पूछता है कि आईपी एड्रेस का उपयोग तब करना चाहिए जब वह बात करना चाहता है www.example.com
  3. आपका कंप्यूटर उस आईपी पते से जुड़ता है, और कहता है कि यह बात करना चाहता है www.example.com (वह है Host:HTTP में हेडर)।
  4. वेबसर्वर यह समझने के लिए कॉन्फ़िगरेशन को देखता है कि सामग्री के अनुरोध के साथ क्या करना है www.example.com। निम्न में से कोई भी हो सकता है:
    • www.example.com एक के रूप में सूचीबद्ध है ServerName या ServerAlias के लिए VirtualHost - यदि ऐसा है, तो यह उस वर्चुअलहोस्टो को सामग्री वितरित करने के लिए कॉन्फ़िगरेशन का उपयोग करेगा।
    • सर्वर में कोई वर्चुअलहोस्ट नहीं है - यदि ऐसा है, तो यह सामग्री वितरित करने के लिए कॉन्फ़िगरेशन का उपयोग httpd.conf में करेगा।
    • सर्वर में वर्चुअलहोस्ट हैं लेकिन www.example.com उनमें से किसी में सूचीबद्ध नहीं है - यदि हां, तो सूची में पहला वर्चुअलहोस्ट सामग्री वितरित करने के लिए उपयोग किया जाएगा।

89
2017-07-02 14:07



इसलिए, यदि HTTP अनुरोध का होस्ट हिस्सा है www.example.com, DNS उस नाम के लिए आईपी पते को हल करेगा, और HTTP अनुरोध होस्ट भाग वास्तव में एक आईपी होगा; सर्वर तक पहुंचने पर, अपाचे को यह भी पता चलेगा कि अनुरोध के लिए कहा गया है www.example.com और यदि कोई है ServerName या ServerAlias उस डोमेन नाम के लिए निर्देश, यह दस्तावेज़ रूट की सेवा कर सकता है? - njp
नहीं - HTTP अनुरोध भाग अभी भी होस्टनाम है। मैं थोड़ा और स्पष्ट कर दूंगा। - Jenny D
बहुत अच्छा, धन्यवाद :) - njp
The server has VirtualHosts but www.example.com isn't listed in any of them - if so, the first Virtualhost in the list will be used to deliver the content.। मैंने इसका परीक्षण किया। यह सही है लेकिन मुझे यकीन नहीं है कि यह पहला वर्चुअलहोस्ट है। जानकारी के लिए धन्यवाद। +1 - S.M.Mousavi


यदि आप सर्वर नाम को परिभाषित नहीं करते हैं, तो apache2 इसे / etc / hosts से अनुमान लगाने का प्रयास करेगा। सर्वरअलीस वैकल्पिक है। सबसे सामान्य उपयोग मामला कहां है

ServerName example.com
ServerAlias www.example.com

यह सुनिश्चित करने के लिए कि यह अनुरोध वेबसर्वर आईपी तक पहुंचने के लिए है, उदाहरण के लिए, डोमेन पंजीकृत करना और DNS रिकॉर्ड्स सेट करना, यह आपके ऊपर है (apache2 की नौकरी नहीं)। ऐसा करने के लिए (परीक्षण और विकास के लिए) डोमेन और डीएनएस रिकॉर्ड के बिना ऐसा करने का एक बहुत ही आम तरीका है अपनी स्थानीय मशीन / etc / hosts फ़ाइल सेट करना ताकि example.com आपके सर्वर के आईपी को इंगित करे।

192.168.0.12 example.com
192.168.0.12 www.example.com

16
2017-07-02 14:13