2016-02-22 6 views
6

मैं एक सप्ताह के लिए इंटरनेट खोज रहा हूं अब इसके लिए एक अच्छा समाधान खोजने की कोशिश कर रहा हूं। सबसे पहले मैंने http-master के बारे में पढ़ा लेकिन मुझे इसे स्थापित करने में समस्याएं आ रही हैं। तब मैंने कुछ अन्य लोगों को देखा जिनके पास कॉन्फ़िगरेशन की विशेषताएं और आसानी नहीं थी। या उत्तर सभी पुराने थेनोडजेएस एकाधिक वेबसाइट

हम नोडजेएस में वेबसाइट विकसित करना चाहते हैं, वर्तमान में परीक्षण, देव और उत्पादन के लिए तीन, दो हैं। इनमें से प्रत्येक एक ही सर्वर पर होस्ट किया जाता है, वर्तमान में एक ही डोमेन नाम के साथ एक अपाचे सर्वर लेकिन विभिन्न बंदरगाहों। हमारे पास एक और वेबसाइट है जिस पर हम एक अलग डोमेन नाम के साथ काम कर रहे हैं।

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

सर्वर चश्मा: विंडोज सर्वर 2012 R2 दो कोर 4 जीबी रैम

+0

मैं वर्चुअलहोस्ट परिभाषाओं और mod_proxy निर्देशों को देख रहा हूं जहां नोड चल रहा है, लेकिन यह एक लैंप पर्यावरण में है। विंडोज के बारे में निश्चित नहीं है ... – Bosworth99

+0

संभावित डुप्लिकेट [मैं अलग-अलग डोमेन के साथ एक ही आईपी/सर्वर पर एकाधिक नोड.जेएस साइट्स कैसे होस्ट करूं?] (Http://stackoverflow.com/questions/19254583/how-do-i -host-multiple-node-js-sites-on-the-same-ip-server-with-different-domain) जिसमें पहले से ही Node.js. का उपयोग करके एकाधिक साइट रणनीतियों के लिए कुछ शानदार उत्तर हैं। –

+0

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

उत्तर

7

आप एक रिवर्स प्रॉक्सी का उपयोग करना चाहते हैं। nginx एक अच्छा विकल्प है क्योंकि विन्यास इतना आसान है। लेकिन इसके साथ ही यह भी अपाचे के साथ प्राप्त किया जा सकता है।

मूल रूप से

तुम सिर्फ प्रत्येक चलाने एक अलग बंदरगाह के तहत आवेदन, और अनुरोध पर डोमेन नाम प्रॉक्सी के आधार पर। एन का उपयोग कर एक उदाहरण सेटअप है ginx।

## Upstream www.example.com ## 
upstream examplelive { 
     server 8081; # nodejs server running on port 8081 
} 

## Upstream dev.example.com ## 
upstream exampledev { 
     server 8082; # nodejs server running on port 8082 
} 

## www.example.com ## 
server { 
    listen  80; 
    server_name www.example.com; 

    access_log /var/log/nginx/log/www.example.access.log main; 
    error_log /var/log/nginx/log/www.example.error.log; 

    ## send request back to examplelive ## 
    location/{ 
    proxy_pass http://examplelive; 
    proxy_set_header  Host   $host; 
    proxy_set_header  X-Real-IP  $remote_addr; 
    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for; 
    } 
} 


## dev.example.com ## 
server { 
    listen  80; 
    server_name dev.example.com; 

    access_log /var/log/nginx/log/dev.example.com.access.log main; 
    error_log /var/log/nginx/log/dev.example.com.error.log; 

    location/{ 
     proxy_pass http://exampledev; 
     proxy_set_header  Host   static.example.com; 
     proxy_set_header  X-Real-IP  $remote_addr; 
     proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for; 
    } 
} 

नीचे अपाचे उदाहरण काम करना चाहिए।

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    ServerName www.example.com 

    ProxyRequests off 

    <Proxy *> 
      Order deny,allow 
      Allow from all 
    </Proxy> 

    <Location /> 
      ProxyPass http://localhost:8081/ 
      ProxyPassReverse http://localhost:8081/ 
    </Location> 

</VirtualHost> 
<VirtualHost *:80> 
    ServerAdmin [email protected] 
    ServerName dev.example.com  

    ProxyRequests off 

    <Proxy *> 
      Order deny,allow 
      Allow from all 
    </Proxy> 

    <Location /> 
      ProxyPass http://localhost:8082/ 
      ProxyPassReverse http://localhost:8082/ 
    </Location> 

</VirtualHost> 
+0

क्या आपके पास अपाचे के लिए शायद एक उदाहरण है? –

+0

@ ब्रैंडन विल्सन ने अपाचे का उपयोग करके भी उदाहरण जोड़ा। देखें कि यह आपके लिए काम करता है या नहीं। –

+0

महान काम महोदय, मैं इसे अपने वर्तमान अपाचे सेटअप में काम करने में सक्षम था, धन्यवाद। –

0

मेरे एकाधिक डोमेन होस्टिंग की पसंदीदा तरीका हमेशा एक्सप्रेस, जो आप अलग डोमेन नाम से मेल करने की अनुमति देता है के साथ vhost उपयोग करने के लिए किया गया है।

var mailapp = connect() 
var staticapp = connect() 

// create main app 
var app = connect() 

// add vhost routing to main app for mail 
app.use(vhost('mail.example.com', mailapp)) 
app.use(vhost('assets-*.example.com', staticapp)) 

आप इस सर्वर की ओर इशारा करते एकाधिक डोमेन हो रही की परेशानी के माध्यम से जाने के लिए नहीं करना चाहते, तो मुझे लगता है कि एक प्राथमिक नाम (जैसे foo1.bar.com, foo2.bar.com पर एक से अधिक उप डोमेन का उपयोग करने और करने के लिए अपने DNS के साथ CNAME रिकॉर्ड का उपयोग कर पाते हैं उन सबडोमेन इंगित बहुत प्रभावी है।