apache - उसी सर्वर पर अपाचे और नोड.जेएस




node.js (6)

मैं नोड का उपयोग करना चाहता हूं क्योंकि यह तेज़ है, उसी भाषा का उपयोग करता है जिसे मैं क्लाइंट साइड पर उपयोग कर रहा हूं, और यह परिभाषा के अनुसार गैर-अवरुद्ध है। लेकिन जिस व्यक्ति को मैंने फाइल हैंडलिंग (बचत, संपादन, नामकरण, डाउनलोड करने, फाइल अपलोड करने आदि) के लिए प्रोग्राम लिखने के लिए काम पर रखा है, वह अपाचे का उपयोग करना चाहता है। तो, मुझे यह करना होगा:

  1. उसे नोड का उपयोग करने के लिए मनाएं (वह उस पर थोड़ा जमीन दे रहा है)

  2. नोड में फ़ाइलों को अपलोड, डाउनलोड, नाम बदलने, सहेजने, आदि फ़ाइलों को कैसे अपलोड करें

  3. मुझे उसी सर्वर पर अपाचे और नोड स्थापित करना होगा।

सबसे अनुकूल स्थिति कौन सा है, और मैं इसे कैसे कार्यान्वित करूं?


आप अपाचे और अन्य सभी नोडजेस ऐप्स दोनों को प्रॉक्सी करने के लिए नोडजेस के साथ एक रिवर्स प्रॉक्सी सर्वर लिखने जैसे एक अलग दृष्टिकोण का उपयोग कर सकते हैं।

मुट्ठी आपको बंदरगाह 80 के अलावा अलग-अलग बंदरगाह पर अपाचे चलाने की जरूरत है। पूर्व: पोर्ट 8080

तो आप नोडजेस के साथ एक रिवर्स प्रॉक्सी स्क्रिप्ट लिख सकते हैं:

var proxy = require('redbird')({port: 80, xfwd: false);

proxy.register("mydomain.me/blog", "http://mydomain.me:8080/blog");
proxy.register("mydomain.me", "http://mydomain.me:3000");

निम्नलिखित लेख इसे बनाने की पूरी प्रक्रिया का वर्णन करता है।

http://wathmal.me/blog/run-apache-with-node-js-reverse-proxy/


आप दोनों एक ही सर्वर पर स्थापित कर सकते हैं, लेकिन उन्हें विभिन्न बंदरगाहों का उपयोग करने के लिए कॉन्फ़िगर करने की आवश्यकता है। दोनों पोर्ट 80 का उपयोग नहीं कर सकते हैं, कम से कम इतना आसान नहीं।

ध्यान रखें कि अपाचे एक सर्वर है, और नोडजेएस एक भाषा है।

क्या आपने यहां पूछने से पहले इस मुद्दे को हल करने की कोशिश की है?

http://arguments.callee.info/2010/04/20/running-apache-and-node-js-together/

मुझे अपने सर्वर पर node.js स्क्रिप्ट चलाने की क्या ज़रूरत है?

http://www.readwriteweb.com/hack/2010/12/how-to-run-apache-and-nodejs.php

http://eastmond.org/blog/?p=45


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

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

आपका उदाहरण एक सीएमएस या साझा करने वाला वेब ऐप जैसा दिखता है और इसमें से कई बॉक्स ऐप उपलब्ध हैं जो अपाचे पर ठीक चलेंगे। यहां तक ​​कि यदि आपको कोई रेडीमेड समाधान पसंद नहीं है, तो आप PHP / Java / Python में एक वेबपैप लिख सकते हैं या मिश्रण को दो तैयार किए गए ऐप्स के साथ मिलान कर सकते हैं और वे सभी अपाचे के एक उदाहरण के पीछे चलाने के लिए डिज़ाइन और समर्थित हैं।

अब मैंने जो कहा है उसके बारे में सोचने और सोचने का समय है।

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

अंत में, टेकस्टैक की आपकी पसंद किसी भी व्यक्तिगत घटक की तुलना में अधिक महत्वपूर्ण है।

मैं @Straseus से पूरी तरह से सहमत हूं कि अपलोड और डाउनलोड को संभालने के लिए node.js फ़ाइल सिस्टम एपीआई का उपयोग करना अपेक्षाकृत मामूली है लेकिन लंबे समय तक अपनी वेबसाइट से आप जो चाहते हैं उसके बारे में और सोचें और फिर अपने टेकस्टैक का चयन करें।

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

यह पोस्ट लगभग एक वर्ष पुराना है और संभावना है कि आपने पहले से ही फैसला कर लिया है, लेकिन मुझे आशा है कि मेरा राग अगले व्यक्ति की मदद करेगा जो इसी तरह के फैसले से गुजर रहा है।

पढ़ने के लिए धन्यवाद।


मैं वही जानकारी ढूंढ रहा था। अंततः @Straseus द्वारा दिए गए उत्तर के लिंक से उत्तर मिला

http://arguments.callee.info/2010/04/20/running-apache-and-node-js-together/

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

अपाचे वेबसाइट के दस्तावेज़ रूट में, निम्न जोड़ें:

Options +FollowSymLinks -MultiViews

<IfModule mod_rewrite.c>

RewriteEngine on

# Simple URL redirect:
RewriteRule ^test.html$ http://arguments.callee.info:8000/test/ [P]

# More complicated (the user sees only "benchmark.html" in their address bar)
RewriteRule ^benchmark.html$ http://arguments.callee.info:8000/node?action=benchmark [P]

# Redirect a whole subdirectory:
RewriteRule ^node/(.*) http://arguments.callee.info:8000/$1 [P]

निर्देशिका स्तर पुनर्निर्देशित करने के लिए, ऊपर दिए गए लिंक (। +) नियम का सुझाव दिया गया है, जिसके लिए 'नोड /' के बाद एक या अधिक वर्ण की आवश्यकता होती है। मुझे इसे (। *) में परिवर्तित करना था जो मेरी सामग्री के काम के लिए शून्य या अधिक था।

@Straseus लिंक के लिए बहुत बहुत धन्यवाद


महान सवाल!

अपाचे पर चलने वाले PHP में लागू कई वेबसाइटें और निःशुल्क वेब ऐप्स हैं, बहुत से लोग इसका उपयोग करते हैं ताकि आप कुछ आसान और इसके अलावा मैट अप कर सकें, यह स्थिर सामग्री की सेवा करने का कोई ब्रेनर तरीका नहीं है। नोड तेज, शक्तिशाली, सुरुचिपूर्ण और एक सेक्सी उपकरण है जिसमें वी 8 की कच्ची शक्ति और कोई अंतर्निर्मित निर्भरता वाले फ्लैट स्टैक हैं।

मैं अपाचे की आसानी / लचीलापन और फिर भी नोड.जेएस की गड़बड़ी और लालित्य चाहता हूं, मेरे पास दोनों क्यों नहीं हो सकते ?

सौभाग्य से Apache httpd.conf में ProxyPass निर्देश के साथ आपके नोड.जेएस एप्लिकेशन पर किसी विशेष URL पर सभी अनुरोधों को पाइप करना बहुत मुश्किल नहीं है।

ProxyPass /node http://localhost:8000

साथ ही, सुनिश्चित करें कि निम्न पंक्तियों पर टिप्पणी नहीं की गई है, इसलिए आपको http अनुरोधों को दोबारा करने के लिए सही प्रॉक्सी और सबमिशन प्राप्त होता है:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

फिर पोर्ट 8000 पर अपना नोड ऐप चलाएं!

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello Apache!\n');
}).listen(8000, '127.0.0.1');

फिर आप अपने यूआरएल पर /node/ पथ का उपयोग करके सभी नोड.जेएस तर्क का उपयोग कर सकते हैं, शेष वेबसाइट को आपके मौजूदा PHP पृष्ठों को होस्ट करने के लिए अपाचे में छोड़ा जा सकता है:

अब केवल एक चीज बाकी है जो आपकी होस्टिंग कंपनी को इस कॉन्फ़िगरेशन के साथ चलने देती है !!!



apache2(v2.4.xx) server साथ node server चलाने के लिए निर्देश:

किसी विशेष URL पर किसी विशेष URL पर सभी अनुरोधों को पाइप करने के लिए अपने Node.JS एप्लिकेशन में /etc/apache2/conf-available निर्देशिका के अंदर CUSTOM.conf फ़ाइल बनाएं, और बनाई गई फ़ाइल में निम्न पंक्ति जोड़ें:

ProxyPass /node http://localhost:8000/

node server लिए prefered पोर्ट नंबर 8000 बदलें।
निम्न आदेश के साथ कस्टम विन्यास सक्षम करें:

$> sudo a2enconf CUSTOM

कस्टम एक्सटेंशन के बिना आपका नया बनाया गया फ़ाइल नाम है, फिर कमांड के साथ proxy_http सक्षम करें:

$> sudo a2enmod proxy_http

यह proxy और proxy_http मॉड्यूल दोनों सक्षम करना चाहिए। आप जांच सकते हैं कि मॉड्यूल सक्षम है या नहीं:

$> sudo a2query -m MODULE_NAME

कॉन्फ़िगरेशन और मॉड्यूल सक्षम करने के बाद, आपको अपाचे सर्वर को पुनरारंभ करना होगा:

$> sudo service apache2 restart

अब आप नोड सर्वर निष्पादित कर सकते हैं। URL/node सभी अनुरोधों को नोड सर्वर द्वारा संभाला जाएगा।





node.js