सरल उत्तर, प्रश्न के स्तर से संबंधित
DNS के बाहरी उपयोगों को अनदेखा करना, और DNS लुकअप (प्रश्न के लिए प्रासंगिक नहीं) को उल्टा करना, लगभग सभी DNS उपयोग फॉर्म का है:
- क्लाइंट DNS सर्वर को डोमेन नाम (पूरी तरह से योग्य या अन्यथा) भेजता है
- DNS सर्वर अपने रिकॉर्ड से डोमेन जानकारी देता है। आमतौर पर अनुरोध की जाने वाली महत्वपूर्ण जानकारी या तो उस डोमेन पर वेब / ईमेल के साथ संवाद करने के लिए आईपी पता है, या किसी अन्य DNS सर्वर का आईपी पता बेहतर है जो उस जानकारी को प्रदान करने में सक्षम है।
एक बार क्लाइंट ने सर्वर से संपर्क कर लिया, तो सर्वर खुद को संभाल लेगा और DNS सिस्टम तस्वीर से बाहर हो जाएगा।
इसका मतलब यह है कि, DNS सिस्टम को पोर्ट जानकारी की आपूर्ति करने की आवश्यकता नहीं है, और यह लगभग ऐसा कभी नहीं करता है। इसलिए यद्यपि प्रश्न का उद्देश्य मान्य है, और अक्सर किया जाता है, यह वास्तव में DNS सिस्टम नहीं है जो इसे करता है। इसलिए आप इसे काम नहीं कर सकते :)
विचार यह है कि एक बार जब आपका ग्राहक उस विशिष्ट मशीन या सर्वर का पता लगा सकता है जिसे वह ढूंढ रहा है, तो उस मशीन पर वह किसी भी पोर्ट को सुनने के लिए है जिसे वह चुनता है, और कॉन्फ़िगर किए गए किसी भी पोर्ट पर किसी भी प्रोटोकॉल को स्वीकार / अस्वीकार / स्वीकार करता है।
उदाहरण के लिए, HTTP वेब सेवाएं आमतौर पर पोर्ट 80 पर प्रदान की जाती हैं। इसका मतलब है कि एक बार क्लाइंट को मशीन आईपी पता है, तो यह मान सकता है कि पोर्ट 80 पर एक संदेश भेजने से उस संदेश को उस मशीन की वेब सेवा द्वारा पढ़ा / जवाब दिया जाएगा। लेकिन यह इस तरह से नहीं है। यदि पोर्ट 9000 पर वेब इनकमिंग अनुरोधों को सुनने के लिए सर्वर को कॉन्फ़िगर किया गया है, तो पोर्ट 9000 तक पहुंचने में सक्षम कोई भी क्लाइंट अपनी वेब सेवा तक पहुंचने में सक्षम होगा। यदि सर्वर एक प्रॉक्सी / NAT / राउटर के पीछे है जो 10000 को पोर्ट 9000 को रीडायरेक्ट करता है, और क्लाइंट पोर्ट 10000 पर एक वेब अनुरोध भेजता है, तो सर्वर इसे पोर्ट 9000 पर प्राप्त करेगा और साथ ही प्रतिक्रिया देगा।
वेब सर्वर के भीतर रीडायरेक्ट / मैपिंग
आपने किसी टिप्पणी में पुनर्निर्देशित मानचित्रण या पुनर्लेखन के बारे में पूछा। ये ऐसे कार्य हैं जो एक वेब सर्वर कर सकता है। मूल रूप से, आप वेब सर्वर (या अधिकांश / कई वेब सर्वर) को यह प्रबंधित करने के लिए कॉन्फ़िगर कर सकते हैं कि यह एक अनुरोध में प्राप्त URL को कैसे संभालता है। इसलिए यह अलग-अलग URL बनाने के लिए रसीद पर URL को आंतरिक रूप से संशोधित कर सकता है, या समान टाइपो (मैपिंग) को ठीक कर सकता है, या यह कुछ अलग, प्रतिस्थापन, URL का उपयोग करके ग्राहक को दूसरी बार पूछने के लिए वास्तव में जवाब दे सकता है। (पुन: निर्देशन)।
ये उनके उपयोग हैं, और सिद्धांत रूप में आपके उपयोग-मामले को संभाल सकते हैं, लेकिन ये आपके लिए "सही" समाधान की तरह ध्वनि नहीं करते हैं:
- मुझे नहीं लगता कि मैपिंग से मदद मिलेगी । मैपिंग वेब सर्वर के लिए लगभग पूरी तरह से आंतरिक है, यह कहता है " इस URL को मानो कि यह URL है"। उदाहरण के लिए, आप किसी वेब साइट URL मैपिंग का उपयोग किसी उपयोगकर्ता को बहुत-पुराने, पुराने और वर्तमान URL (उपयोगकर्ता सुविधा के लिए) का उपयोग करके " https://example.com/index.php?area-=forum&topic " का उपयोग करने के लिए कर सकते हैं। = 2 "," https://example.com/forum.php?topic=2 "और भी" https://forum.example.com?topic=2 "", और इसे केवल एक बार संभालना है, इनमें से पहले दो को तीसरे URL पर आंतरिक रूप से मैप करके, क्वेरी को संभालने के पहले चरण के रूप में। जैसा कि यह लक्ष्य क्वेरी पथ को प्रभावित करता है न कि आईपी / पोर्ट, मैपिंग के लिए बहुत उपयोग नहीं है। पोर्ट प्रबंधन, और आपके मामले में, ग्राहक वास्तव में कभी भी 8080 पर सवाल नहीं उठाता है।
- पुनर्निर्देशन काम करेगा, लेकिन वह नहीं हो सकता जो आप चाहते हैं । वेब सर्वर में पुनर्निर्देशन वास्तव में क्वेरी प्राप्त करने वाले वेब सर्वर पर निर्भर करता है (क्योंकि ये वेब सर्वर आंतरिक कार्य हैं)। तो वेब सर्वर को मूल क्वेरी, रीडायरेक्ट / मैप के साथ उत्तर देने के लिए पोर्ट 80 पर वैसे भी सुनना होगा। इसे पोर्ट 8080 पर भी सुनना होगा । कार्यात्मक रूप से, इसे फिर से "पोर्ट: 8080" URL का उपयोग करके क्वेरी करने के लिए किसी भी क्लाइंट को पोर्ट 80 को बताने के लिए एक रीडायरेक्ट नियम की आवश्यकता होगी, जो आपको जैसा लगता है वैसा नहीं है। करना। उपयोगकर्ता को इसमें ": 8080" के साथ नया URL भी दिखाई देगा, जबकि ऐसा लगता है कि आप चाहते हैं कि यह "पारदर्शी" हो और न दिखाया गया हो।
- रीडायरेक्ट केवल एक मानक पोर्ट (80 या 443) को रीडायरेक्ट करने के लिए काम करेगा - आप 2000 से 8080 तक पोर्ट को रीडायरेक्ट नहीं कर सकते, क्योंकि क्लाइंट 2000 में डिफ़ॉल्ट रूप से, पहले स्थान पर क्वेरी नहीं करेगा, इसलिए यह कभी नहीं होगा भले ही यह 2000 पर सुन रहा था, वेब सर्वर को प्राप्त करें। हालांकि यह आपके लिए समस्या नहीं हो सकता है।
हालाँकि यदि आप "बुद्धिमान" पुनर्निर्देशन चाहते हैं, जहां केवल कुछ प्रश्नों को 8080 पर फिर से जोड़ा जाता है, तो यह जाने का तरीका हो सकता है, क्योंकि रीडायरेक्ट में तर्क शामिल हो सकते हैं कि कौन से URL को पुनर्निर्देशित किया जाना चाहिए, जबकि पोर्ट मैपिंग (नीचे) सब कुछ मैप करेगा ।
इसे सही ढंग से कैसे करें
आपके प्रश्न का उत्तर है, आप चाहते हैं कि वेब सर्वर वेब रिक्वेस्ट का जवाब दे जिसे क्लाइंट डिफ़ॉल्ट पोर्ट (80/443) पर भेजता है, लेकिन जो सर्वर वास्तव में पोर्ट 8080 पर प्राप्त करता है।
इसका मतलब है, जैसा कि आप देख सकते हैं, आपको क्लाइंट और सर्वर के बीच पोर्ट के नक्शे के बीच कुछ चाहिए । इस तरह, क्लाइंट पोर्ट 80 (वेब ब्राउज़र द्वारा उपयोग किया जाने वाला डिफ़ॉल्ट पोर्ट) पर भेजता है, लेकिन यह वास्तव में वेब सर्वर द्वारा पोर्ट 8080 पर प्राप्त होता है। बेशक, आपको पोर्ट 8080 पर सुनने के लिए वेब सर्वर को कॉन्फ़िगर करना होगा, क्योंकि यह मानक नहीं है, लेकिन यह आसान है और किसी भी वेब सर्वर को अपने सुनने के पोर्ट निर्दिष्ट करने में सक्षम होना चाहिए।
ऐसा करने का सबसे सामान्य तरीका पोर्ट मैपिंग के माध्यम से राउटर / फ़ायरवॉल के भीतर होगा।
साधारण शब्दों में, ऐसा करने के लिए, राउटर को एक नियम दिया जाता है, जो कुछ भी प्राप्त होता है, जिसमें गंतव्य आईपी और गंतव्य पोर्ट = 80 है, को लैन में पास किया जाना चाहिए, क्योंकि गंतव्य बंदरगाह बदले में 8080 है। न तो वेब सर्वर और न ही क्लाइंट को परिवर्तन के बारे में पता होगा (यह 100% राउटर द्वारा नियंत्रित किया जाता है), इसलिए यह उन दोनों के लिए 100% पारदर्शी होगा। क्लाइंट के पास इसके URL में ": 8080" नहीं होगा और उसे कुछ भी रीडायरेक्ट करने की आवश्यकता नहीं होगी, क्योंकि यह क्वेरी 80 पोर्ट करता है, और वेब सर्वर पोर्ट 80 को अनदेखा कर सकता है और 8080 पर ही सुन सकता है, क्योंकि इसे पोर्ट 80 पर कभी भी प्रश्न नहीं मिलते हैं। ।
यदि आप एक सरल, सीधा रास्ता चाहते हैं, तो "बंदरगाहों के लिए डीएनएस" के समान, यह संभवतः आपके प्रश्न में आपके द्वारा पूछे जाने वाले निकटतम समतुल्य है।