क्या मैं होस्टनाम * और * पोर्ट को / etc / मेजबान के साथ मैप कर सकता हूँ? [बन्द है]


189

क्या मैं 127.0.0.1एक डोमेन नाम और एक बंदरगाह की तरह एक आईपी पते को मैप कर सकता हूं ?

उदाहरण के लिए, मैं मैप करने के लिए चाहते हैं 127.0.0.1के लिएapi.example.com:8000


6
आप पोर्ट नंबर को / etc / मेजबानों में मैप नहीं कर सकते। इसके बजाय आप 127.0.0.1 api.mydomain.comइसे ब्राउजर में परिभाषित और एक्सेस कर सकते हैं जैसेapi.mydomain.com:8080
Fizer Khan

मैंने कहीं पढ़ा है कि डीएनएस इसका समर्थन करता है। आपके पास एक रिकॉर्ड हो सकता है जो www.example.com http पर 80 पोर्ट पर है और यह भी कहने के लिए एक रिकॉर्ड है कि पता 127.0.0.1 है, यह भी कहा कि यह अच्छी तरह से समर्थित नहीं था। इसके बाद ज्यादा कुछ नहीं कहा।
ctrl-alt-delor

जवाबों:


185

नहीं, यह संभव नहीं है। पोर्ट होस्टनाम का हिस्सा नहीं है, इसलिए इसका hosts-file में कोई अर्थ नहीं है ।


134

यदि आपको वास्तव में ऐसा करने की आवश्यकता है, तो रिवर्स प्रॉक्सी का उपयोग करें।

उदाहरण के लिए, रिवर्स प्रॉक्सी के रूप में नेग्नेक्स के साथ

server {
  listen       api.mydomain.com:80;
  server_name  api.mydomain.com;
  location / {
    proxy_pass http://127.0.0.1:8000;
  }
}

4
मुझे लगता है कि प्रॉक्सी_पास की लाइन इस तरह दिखनी चाहिए: proxy_pass http://127.0.0.1:8000;मुझे nginx 1.4.3 पर "अमान्य URL उपसर्ग" मिला।
नोबू

इस अद्भुत टिप के लिए धन्यवाद! अधिकांश सर्वरों के लिए सरल समाधान।
miccscopes

मैं इस ट्रिक का उपयोग दूरस्थ मशीन के पोर्ट मैप करने के लिए कर रहा हूं (जैसे कि cloud.app:80 जबकि वास्तविक पोर्ट 8080 है)। किसी क्लस्टर के कॉन्फ्लुएंस नोड्स के परीक्षण के लिए बहुत उपयोगी है लेकिन उन्हें एक ही बेस URL पर एक्सेस करना है। धन्यवाद!
गागोर नेगी

9
मुझे मूल रूप से एक ही समस्या थी और इस रिवर्स-प्रॉक्सी का उपयोग करने वाला समाधान वास्तव में मददगार है। हालाँकि, मैं कुछ सरल समाधान चाहता था इसलिए मैंने यह उपकरण बनाया: github.com/cristianoliveira/ergo मुझे आशा है कि यह किसी भी तरह से मदद करेगा :)
क्रिस्टियान ओलिवेरा

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