यदि आप node http-proxy या nginx जैसे कुछ का उपयोग करते हैं तो आप अलग-अलग स्थानीय बंदरगाहों पर अलग-अलग साइटों को चला सकते हैं और फिर डोमेन नाम को मानचित्र बना सकते हैं। मैं http प्रॉक्सी का उपयोग करता हूं लेकिन दूसरों को nginx पसंद है।
इसके लिए काम करने के लिए, आपको आईपी पते पर हल होने वाली DNS प्रविष्टियों को जोड़ना होगा जो आपकी रिवर्स प्रॉक्सी चल रही है। फिर उदाहरण के लिए, बंदरगाह 80 अनुरोध वापस स्थानीयहोस्ट में मैप किया जाएगा: 3000।
यह प्रत्येक ऐप अलगाव में और अन्य साइटों से अलग प्रक्रियाओं में चलाने की अनुमति देता है। वे एक दूसरे को दुर्घटनाग्रस्त नहीं कर सकते हैं। आपके पास नेमस्पेस समस्याएं भी नहीं हैं जहां दोनों ऐप्स एक ही पथ का दावा करते हैं।
HTTP प्रॉक्सी के लिए मेरे app.js इस तरह दिखता है:
var proxyPort = 80;
var http = require('http');
var httpProxy = require('http-proxy');
var options = {
router: {
'localhost': '127.0.0.1:3000',
'somesite.com': '127.0.0.1:3000',
'othersite.com': '127.0.0.1:4000'
}
};
console.log('Proxy Routing:')
console.log(options);var options = {
console.log();
var proxyServer = httpProxy.createServer(options);
proxyServer.listen(proxyPort);
console.log('Proxy listening on port ' + proxyPort);
तुम भी रास्तों के साथ मार्ग ले सकते हैं। देखें: https://github.com/nodejitsu/node-http-proxy/issues/232
तो अधिक अपने मूल अनुरोध की तरह, आप कर सकते हैं:
router: {
'myhost.com/appA': '127.0.0.1:8080',
'myhost.com/appB': '127.0.0.1:9090/appB',
'myhost.com/appC': '127.0.0.1:9090/appC'
}
};
एक अन्य विकल्प बस प्रति ग्राहक एक मार्ग/पेज प्रदान करना है और फिर यह केवल एक DNS समस्या है। आप DNS सेट अप करेंगे ताकि सभी डोमेन नाम आपके ऐप पर चलने वाले एक आईपी पते को हल कर सकें। इसमें कुछ डाउनसाइड्स हैं:
- डोमेन 1.com/user1, domain1.com/user2, domain2.com/user1 और domain2.com/user2 सभी काम करेंगे जो आप शायद नहीं चाहते हैं।
- क्या आप सभी कोड को नियंत्रित करते हैं या कोड कोड करते हैं? यदि यह उपयोगकर्ता कोड प्रदान करता है तो आप कुछ अलगाव चाहते हैं इसलिए अलग-अलग ऐप्स।
- आपको अभी भी लिनक्स में पोर्ट 80 पर चलाने के लिए http प्रॉक्सी की आवश्यकता है और सूडो के रूप में नहीं चलाया जा सकता है।
क्या आप इन्हें अलग-अलग Node.js उदाहरणों पर इंगित कर रहे हैं? या सभी एक ही ऐप? – Brad
उदाहरण में आप जो उल्लेख करते हैं वह भ्रमित है: 'mysite.com/उनकी साइट' एक अलग डोमेन पर नहीं होगी, यह एक अलग मार्ग है। आपके पास आमतौर पर 'domain.com' जैसे डोमेन और' mail.domain.com' जैसे उप डोमेन होते हैं। क्या आप ऐसे अनुरोधों को पुनर्निर्देशित करना चाहते हैं या उन्हें संसाधित करना चाहते हैं? – user568109
@ user568109 भ्रम के लिए खेद है। mysite.com/their-site मेरे आवेदन पर उनका पृष्ठ होगा। उनके पास कहीं और पंजीकृत डोमेन हो सकता है, जिसे मैं उनके साइट पर उनके पेज पर मैप करने का विकल्प चाहूंगा। –