2015-09-16 13 views
8

मेरे पास एक समर्पित सर्वर है जिस पर मैं वर्तमान में 4 PHP वेबसाइट चला रहा हूं। सर्वर apache + nginx के साथ कॉन्फ़िगर किया गया है। जब भी मैं php वेबसाइट होस्ट करता हूं, मैंने फ़ाइलों को public_html फ़ोल्डर पर रखा है और यह है कि, यह चलना शुरू हो जाता है। लेकिन अब मैं नोडजेस एप्लीकेशन स्थापित करना चाहता हूं। मैं सिर्फ server.js फ़ाइल को संभालने के तरीके पर उलझन में हूं? और इसे कैसे चलाना है? क्या मुझे अपने यूबंटू होस्ट पर हमेशा के लिए दौड़ने के लिए pm2 या हमेशा के लिए उपयोग करना चाहिए। साथ ही डोमेन नाम के साथ वेबसाइट को कैसे चलाएं उदाहरण example.comphp/apache सर्वर पर nodejs ऐप को कैसे तैनात करें?

उत्तर

10

नोडजेएस में आप या तो एक्सप्रेस या मूल रूप से अपने स्वयं के वेबसर्वर को पहले से मौजूद कुछ का उपयोग कर सकते हैं, जो कि ध्वनि चुनौती के बावजूद वास्तव में नोडज में सरल है ...

var http = require("http"); 

http.createServer(function(request, response) { 
    response.writeHead(200, {"Content-Type": "text/plain"}); 
    response.write("Hello World"); 
    response.end(); 
}).listen(3000); 

हमेशा के लिए और पीएम 2 शुरू करने के लिए सबसे अच्छी जगह है यदि आप अपने सर्वर पर सेवा को चालू रखना चाहते हैं। हमेशा के लिए पीएम 2 से अधिक समय तक रहा है, लेकिन मेरा मानना ​​है कि पीएम 2 हमेशा के लिए समृद्ध समृद्ध है (हमेशा उपयोग करने के लिए थोड़ा आसान है)।

अपाचे या nginx के संबंध में आप उन लोगों को अपने नोड प्रक्रिया पर अनुरोध अग्रेषित करने के लिए उपयोग कर सकते हैं। पोर्ट 80 पर डिफ़ॉल्ट रूप से चलाता है, होवरवर पोर्ट 80 पहले से ही आपके अपाचे प्रक्रिया द्वारा उपयोग किया जा रहा है। मैं अनुशंसा करता हूं कि अपने नोडजेज़ एप्लिकेशन को किसी अन्य पोर्ट (उदाहरण के लिए 3000) पर चलाएं और अपने मौजूदा वेब सर्वर (अपाचे, ligtthpd, nginx इत्यादि) को रिवर्स प्रॉक्सी के रूप में उपयोग करें, मैंने नीचे एक उदाहरण सेटअप शामिल किए हैं।

अपाचे

<VirtualHost example.com:*> 
    ProxyPreserveHost On 

    ProxyPass /api http://localhost:3000/ 
    ProxyPassReverse /api http://localhost:3000/ 

    ServerName localhost 
</VirtualHost> 

Lighttpd

$HTTP["host"] == "example.com" { 
    server.document-root = "/var/www/example.com" 
    $HTTP["url"] =~ "(^\/api\/)" { 
     proxy.server = (
      "" => (
       (
        "host" => "127.0.0.1", 
        "port" => "3000" 
       ) 
      ) 
     ) 
    } 
} 

nginx

http { 

    ... 

    server { 

     listen 80; 
     server_name example.com; 

     ... 

     location /api { 

      proxy_set_header Host $host; 
      proxy_set_header X-Real-IP $remote_addr; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_set_header X-Scheme $scheme; 

      rewrite ^/api/?(.*) /$1 break; 
      proxy_pass http://localhost:3000; 
     } 

     ... 
    } 
} 

उपरोक्त उदाहरण में किसी भी http://example.com/api का अनुरोध पोर्ट 3000 पर चलने वाली आपकी नोड प्रक्रिया पर रीडायरेक्ट किया जाएगा।

यह विचार यहां है कि आप अपनी स्थिर फ़ाइलों (उदाहरण के लिए सीएसएस) और आपके आवेदन की सेवा के लिए अपनी नोड प्रक्रिया की सेवा के लिए वेबसर्वर का उपयोग करते हैं।

+0

ठीक है, मैं इसे आजमाने की कोशिश कर रहा हूं – John

+0

जैसा कि मैं यह सेटिंग्स करता हूं और अपाचे को पुनरारंभ करता हूं, यह प्रारंभ नहीं होता है। कहते हैं परीक्षण विन्यास विफल – John

संबंधित मुद्दे