का उपयोग कर ग्राहक/क्लाइंट स्टाइल सबडोमेन कैसे करें ग्राहक किसी को डोमेन में अपने संगठन के नाम का उपयोग करके सास तक पहुंचने की अनुमति कैसे देता है?नोड और एक्सप्रेस
उदाहरण के लिए, एक वेब ऐप, example.com, में 2 ग्राहक, ओर्गा और ओर्बबी हो सकते हैं।
एक बार लॉग इन होने पर, प्रत्येक ग्राहक को उनकी साइट, orga.example.com/orgb.example.com पर रीडायरेक्ट किया जाता है।
एक बार अनुरोध जिसमें सबडोमेन नोड सर्वर तक पहुंच जाता है, मेरी आशा है कि अनुरोध को एक '/' मार्ग से संभाला जाए। मार्ग हैंडलर के अंदर, यह मेजबान शीर्षलेख का निरीक्षण करता है और संगठन के लिए उपमहाद्वीप के रूप में सबडोमेन का व्यवहार करता है। कुछ ऐसा:
app.get "/*", app.restricted, (req, res) ->
console.log "/* hit with #{req.url} from #{req.headers.host}"
domains = req.headers.host.split "."
if domains
org = domains[0]
console.log org
# TODO. do something with the org name (e.g. load specific org preferences)
res.render "app/index", { layout: "app/app" }
एनबी। डोमेन सरणी में पहला आइटम संगठन का नाम है। मुझे लगता है कि होस्ट हेडर में कोई पोर्ट दिखाई नहीं देता है और, अभी के लिए, मैं गैर-संगठन उप डोमेन नामों (जैसे www, ब्लॉग इत्यादि) को संभालने के तरीके पर विचार नहीं कर रहा हूं।
इसलिए मेरे पास सवाल यह है कि अलग-अलग होस्ट हेडर के साथ अनुरोधों को संभालने के लिए नोड/एक्सप्रेस को कैसे कॉन्फ़िगर किया जा सकता है। यह आम तौर पर अपाचे में एक वाइल्डकार्ड उपनाम या आईआईएस में होस्ट हेडर का उपयोग करके हल किया जाता है।
एक अपाचे/रेल उदाहरण @http://37signals.com/svn/posts/1512-how-to-do-basecamp-style-subdomains-in-rails
कैसे एक ही नोड में प्राप्त किया जा सकता है?
प्राप्त करने के लिए आप एक मिडलवेयर कि मेजबान हैडर पर लग रहा है, जो कुछ भी लिख सकता है डेटा हो जाता है इसे उस विशिष्ट मेजबान की आवश्यकता है और मार्ग/मिडलवेयर में उपयोग के लिए req ऑब्जेक्ट में जोड़ता है। –
मुझे लगता है कि बिट वह है जो मुझे पहले से मिला है (हालांकि अभी तक मिडलवेयर में स्थानांतरित नहीं हुआ है)। मैं * .example.com को पकड़ने के लिए सर्वर सेट अप करने के तरीके पर अवरुद्ध/अस्पष्ट हूं। मैं सोच रहा हूं कि प्रॉक्सी की आवश्यकता हो सकती है (https://github.com/nodejitsu/node-http-proxy) लेकिन मुझे इसे समझने का प्रयास करने से पहले मुझे और जानना होगा। मुझे स्थानीय रूप से विकसित करने के लिए समाधान की आवश्यकता है (ओएसएक्स पर)। – mattgi