आपके पास एक आईपी पता और कई वेबसाइट कैसे हैं?


27

मेरे पास यह कैसे हो सकता है जहां मेरे पास एक आईपी पता है जो इंटरनेट पर कई वेब नामों पर बैठता है? उदाहरण के लिए, जब एक होस्टिंग कंपनी के पास एक साझा आईपी होता है, लेकिन मुझे असीमित डोमेन नाम मिलते हैं (उस बॉक्स पर अन्य सभी के साथ)।

मेरे पास इंटरनेट पर एक बॉक्स है, लेकिन मैं एक अन्य मशीन को इंगित करना चाहता हूं जो एक अलग वेबसाइट रखता है जब कोई व्यक्ति अलग-अलग www में टाइप करता है ... (यह सिर्फ एक अलग बॉक्स में इसके ठीक बगल में बैठा है)। क्या यह सब सबडोमेनिंग है? धन्यवाद।

मैं होस्टिंग कंपनी हूँ

जवाबों:


36

यह HTTP 1.1 प्रोटोकॉल का हिस्सा है।

विशेष रूप से, HTTP 1.1 प्रोटोकॉल में "होस्ट:" नामक एक हेडर शामिल है जो निर्दिष्ट करता है कि ग्राहक किस वेब साइट पर एक विशेष सर्वर का उपयोग करने का प्रयास कर रहा है।

तो, अगर snoopy.net और woodstock.org दोनों ही शेयर 192.0.32.10 साझा करते हैं और आपका ब्राउज़र http://snoopy.net/doghouse विशिष्ट http अनुरोध से सामग्री प्राप्त करने का प्रयास कर रहा है, तो वह ऐसा दिखेगा:

GET /doghouse HTTP/1.1
Host: snoopy.net

यदि वांछित url है http://woodstock.org/seedsतो अनुरोध ऐसा दिखेगा

GET /seeds HTTP/1.1
Host: woodstock.org

दोनों स्थितियों में, आपके कंप्यूटर और सर्वर के पोर्ट 80 के बीच एक tcp सॉकेट होगा। सर्वर होस्ट हेडर के आधार पर /var/www/snoopy.net या /var/www/woodstock.org/ से सामग्री प्राप्त करना जानता होगा।

कुकीज़ और अन्य प्रकार जैसे ब्राउज़र प्रकार और अनुमत सामग्री के लिए अन्य हेडर होंगे, लेकिन "होस्ट" हेडर विशेष रूप से वह है जो वेब सर्वर को यह जानने की अनुमति देता है कि कौन सी वर्चुअल वेब साइट वांछित है।

RFC2616 में अधिक है ।

ऐसा इसलिए भी है क्योंकि https साइट्स * में अपना स्वयं का आईपी पता होना चाहिए - एसएसएल कुंजी एक्सचेंज और सर्टिफिकेट सत्यापन http लेन-देन से पहले होता है, इसलिए http सर्वर को "वुडस्टॉक" के लिए प्रमाणपत्र देने की आवश्यकता नहीं होगी। org "या" snoopy.net "जब यह 192.0.32.10 के पोर्ट 443 पर एक https कनेक्शन प्राप्त करता है।


संपादित करें

** टिप्पणियों में Grawity बताती है कि TLS कल्पना में SSL का विस्तार होता है जो सर्वर को यह जानने की अनुमति देता है कि उपयोगकर्ता किस वेब साइट को एक्सेस करने का प्रयास कर रहा है, और अधिकांश आधुनिक वेब ब्राउज़र में ये एक्सटेंशन हैं, इसलिए थोड़ा सा भी होना चाहिए बलवान।


इसलिए वेबसर्वर उस हेडर को देखेगा और उसे सही वेबसाइट पर ले जाएगा? क्या आपके पास उसी तरह के पोर्ट पर कई वेबसाइटें हो सकती हैं?
जॉनी

1
वास्तव में यही है। अपाचे जैसे एक "सर्वर" में 192.0.32.10 का पोर्ट 80 है जिसमें कई डीएनएस प्रविष्टियां हैं, जिनमें से प्रत्येक "साइट" है। सर्वर जानता है कि वांछित साइट "होस्ट" हेडर पर आधारित है।
क्रिस

3
DNS दोनों नामों को एक ही आईपी पते पर इंगित करने के लिए कॉन्फ़िगर किया गया है , जहां सर्वर सुन रहा है। सर्वर एक ही आईपी और पोर्ट पर कनेक्शन प्राप्त करता है, लेकिन तब, जब ब्राउज़र यह बताता है कि "मुझे SiteA.com चाहिए", तो यह जानता है कि इसे साइटबी.कॉम के लिए पूछे जाने की तुलना में एक अलग सामग्री देने की आवश्यकता है।
मैसिमो

2
और भी स्पष्ट होने के लिए: दो साइट HTTP प्रोटोकॉल स्तर पर प्रतिष्ठित हैं, टीसीपी / आईपी स्तर पर नहीं। यह ऐसा है जब कोई आपके कार्यालय में फोन करता है और जॉन या सुसान के साथ बात करने के लिए कहता है: फोन नंबर एक ही है, लेकिन एक से अधिक लोग इसका उपयोग कर सकते हैं।
मासिमो

1
अधिकांश वेब ब्राउज़र और सर्वर अब TLS सर्वर नाम संकेत का समर्थन करते हैं, जो प्रति वेबसाइट एक आईपी पते की आवश्यकता को हटा देता है।
grawity

12

ऐसा कुछ है जो सभी आधुनिक ब्राउज़र अनुरोध के साथ भेजते हैं, जिसे "होस्ट:" हेडर कहा जाता है।

इस पृष्ठ के लिए वास्तविक अनुरोध फ़ायरफ़ॉक्स भेजता है:

होस्ट: superuser.com
उपयोगकर्ता-एजेंट: मोज़िला / 5.0 (विंडोज; यू? विंडोज़ एनटी 6.0; एन-यूएस; आरवी: 1.9.1.7) गेको / 20091221 फ़ायरफ़ॉक्स / 3.5.7 (.NET सीएलआर 3.5.30729)
स्वीकार करें: टेक्स्ट / html, एप्लिकेशन / xhtml + xml, एप्लीकेशन / xml; q = 0.9, * / *; q / =
स्वीकार-भाषा: en-us, en; q = 0.5
स्वीकार-एनकोडिंग: गज़िप, अपस्फीति
स्वीकार-चरस: ISO-8859-1, utf-8; q = 0.7, *; q = 0.7
कीप-अलाइव: 300
कनेक्शन: जीवित रखें

जैसा कि आप देख सकते हैं,

होस्ट: superuser.com
बिट प्रश्न में वेबसाइट की पहचान करता है।

IIS और Apache में, आप वर्चुअल वेब साइट्स को कॉन्फ़िगर कर सकते हैं जो केवल एक विशिष्ट आईपी / होस्ट संयोजन से अनुरोध स्वीकार करते हैं।

अपने विशेष मुद्दे के लिए, आपको यह पढ़ना होगा कि आपकी विशेष होस्टिंग कंपनी कैसे कॉन्फ़िगरेशन के लिए अनुरोध करना चाहती है।


यह भी उल्लेख किया जाना चाहिए कि आपको अपने आईपी पते के लिए कई DNS प्रविष्टियां सेट करने की आवश्यकता है।
तदेउस्ज़ ए। कदलोबोस्की

@Tadeusz: वाइल्डकार्ड डीएनएस प्रविष्टियों को स्थापित करना संभव है, इसलिए यह कड़ाई से आवश्यक नहीं है।
जॉन गीटजेन 3

6

एक ही आईपी पते / होस्ट पर एक से अधिक डोमेन / उप डोमेन होस्ट करने की तकनीक को वर्चुअल होस्ट कहा जाता है । Http प्राप्त अनुरोध में डोमेन नाम होता है जो अनुरोधों के लिए होता है जिसके लिए वेब सर्वर किसी विशेष वर्चुअल डोमेन के साथ अनुरोध को मेल कर सकता है।

यदि आपके पास आंतरिक रूप से सिर्फ एक बाहरी आईपी के साथ कई भौतिक मेजबान हैं, तो आप सही मशीन / आंतरिक आईपी पते के अनुरोधों को अग्रेषित करने के लिए रिवर्स प्रॉक्सी स्थापित करना चाहते हैं ।


या आप अलग-अलग बंदरगाहों पर अन्य http सर्वर भी कर सकते हैं।
चॉपर 3

हां वह भी एक विकल्प है। लेकिन लोगों को एक पोर्ट निर्दिष्ट करने के लिए उपयोग नहीं किया जाता है जब वे एक यूआरएल में टाइप करते हैं तो मैं उस समाधान को कुछ स्थितियों जैसे कि एक व्यवस्थापक इंटरफ़ेस के रूप में आरक्षित करूंगा।

3

आपके वेबसर्वर पर मौजूद सुविधा को आमतौर पर 'वर्चुअल होस्ट' कहा जाता है। एक बार जब आप डीएनएस प्रविष्टियों को उस एक आईपी पते (जैसा कि अन्य उत्तरों में उल्लेख किया गया है) को इंगित करने के लिए सर्वर तब अनुरोधित होस्ट के आधार पर विभिन्न साइटों को सर्वर करेगा।

जहाँ तक दूसरे बॉक्स की ओर इशारा करता है। यदि आप क्वेरी पहले प्राप्त करने की अपेक्षा कर रहे हैं, तो आप अधिकांश वेब सर्वरों में रीडायरेक्ट कॉन्फ़िगर कर सकते हैं। यदि आप उप-डोमेन के बारे में बात कर रहे हैं, तो आप सभी उप डोमेन को एक अलग आईपी पते पर इंगित करते हैं।

ie host.com -> IP 1 फिर www.host.com -> IP 2 और mail.host.com -> IP 3

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

आपको लग सकता है कि इस सवाल के लिए ServeFault बेहतर जगह है।


1

संक्षेप में...

एक - अपने विभिन्न डोमेन के लिए DNS प्रविष्टियों को अपने बॉक्स में सभी बिंदुओं पर सेट करें।

दो - जैसा कि दूसरों द्वारा वर्णित किया गया है, अपने वेबसर्वर (आप जो एक नहीं कहते हैं) को अनुरोधित होस्ट नाम पर मिलान करने के लिए सेट करें।

इस तरह आपके सभी डोमेन के सभी अनुरोध एक ही मशीन पर चले जाते हैं और यह कॉन्फ़िगर किए गए डोमेन को ले जाता है और इसे उस साइट की सामग्री वाले सही फ़ोल्डर में ले जाता है।


0

यह आपके प्रश्न से मुझे लगता है जैसे आपके पास दूसरी वेबसाइट के लिए एक अलग भौतिक सर्वर है। उस स्थिति में आप दो सर्वरों के लिए एक एकल आईपी पते का उपयोग नहीं कर पाएंगे। आप या तो) अपने दूसरे होस्ट के लिए दूसरा सार्वजनिक आईपी पता प्राप्त कर सकते हैं या बी) एक स्मार्ट प्रॉक्सी सेट कर सकते हैं जो होस्ट हेडर के आधार पर आपके आंतरिक नेटवर्क पर विभिन्न सर्वरों के लिए अनुरोध करता है। मुझे पूरा यकीन है कि b) संभव है, लेकिन मुझे इस बात का कोई पता नहीं है कि यह कैसे काम करता है, इसलिए आपको किसी और से पूछना होगा कि क्या आप ऐसा करने की कोशिश कर रहे हैं।


0

अगर मैं आपके प्रश्न को सही से पढ़ रहा हूं, तो आपके पास NAT (नेटवर्क एड्रेस ट्रांसलेशन) के माध्यम से आईपी एड्रेस साझा करने वाले दो अलग-अलग कंप्यूटर हैं? यदि ऐसा है, तो आपको एक साइट को एक अलग पोर्ट (80 नहीं) पर सुनना होगा - मुझे "होस्ट" मेटाडेटा के आधार पर विभिन्न कंप्यूटरों को राउटर भेजने के लिए कोई अच्छा तरीका नहीं है। आप अपने दूसरे सर्वर के लिए केवल दूसरा IP पता प्राप्त करना बेहतर समझते हैं।

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