2012-05-20 9 views
6

मैं node-http-proxy प्रॉक्सी सर्वर का उपयोग कर एक्सप्लोर कर रहा हूं ताकि मेरे पोर्ट पोर्ट 8000 पर हमारे ऐप सर्वर पर पोर्ट 80 आगे अनुरोधों पर हमारा प्रॉक्सी सर्वर हो। हालांकि, मैं थोड़ा उलझन में हूं कि यह एक अच्छा विचार क्यों है, और वास्तव में यह सेट सुरक्षा-वार के खिलाफ सुरक्षा करेगा।एक पोर्ट पर एक ऐप के साथ एक नोड ऐप के लिए नोड-http-प्रॉक्सी जैसे प्रॉक्सी सर्वर का उपयोग करने का क्या मतलब है?

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

यदि कोई महत्वपूर्ण सुरक्षा कारण है कि हमें इस प्रॉक्सी-सर्वर का उपयोग क्यों करना चाहिए, तो मुझे यह जानना अच्छा लगेगा कि यह किस प्रकार के हमलों के खिलाफ सुरक्षा करता है। साथ ही, हम socket.io का उपयोग कर रहे हैं, इसलिए अगर ऐसा कुछ है जो प्रॉक्सी वेबसाईट सर्वर स्केल अप करने में मदद करता है, तो मैं इसे भी समझना चाहता हूं। हमें sudo के बिना हमारे ऐप को चलाने के तरीके को समझने में समस्या हो रही है (क्योंकि 1024 से नीचे के सभी बंदरगाहों को रूट पहुंच की आवश्यकता है), इसलिए यदि इस बिंदु पर प्रॉक्सी सर्वर का उपयोग करने के लिए वास्तव में कोई अच्छा कारण नहीं है, तो हम बस स्क्रैप करने जा रहे हैं । यदि कोई जानता है कि रूट ऐप के बिना पोर्ट 80 पर प्रॉक्सी सर्वर के साथ इस ऐप को कैसे चलाया जाए, तो यह भी बहुत उपयोगी होगा। धन्यवाद!

+0

सिर्फ उत्सुक है कि आपने इसे पहले स्थान पर क्यों देखा?स्थिर संपत्तियों की सेवा करने या नोड ऐप को अन्य अनुरोधों को पास करने के लिए प्रॉक्सी के रूप में nginx जैसे कुछ का उपयोग करना आम है। –

+0

@ जस्टिन सोलिज़ क्योंकि जहां तक ​​मुझे पता है, nginx प्रॉक्सी वेबसाइकिल नहीं करता है – user730569

+0

यह एक उदाहरण था, फिर बस पूछ रहा था कि आपने नोड-http-प्रॉक्सी क्यों देखा? आप इसके साथ क्या हासिल करने की कोशिश कर रहे हैं –

उत्तर

3

एक रिवर्स प्रॉक्सी चलाने के लिए कारण हैं:

  • आप सीमित आईपी बंदरगाहों खुला है और की जरूरत है, जिनमें से प्रत्येक का अपना बंदरगाह
  • है
  • आपका बैक-एंड सेवा का समर्थन नहीं करता कई नोड सेवाओं को चलाने की जरूरत है HTTPS लेकिन आप इसे (जैसे डर्बी)
  • इस तरह के मूल प्रमाणीकरण या आम प्रवेश/लेखा परीक्षा
  • के कुछ फार्म जोड़ने एक अतिरिक्त लागू करने के लिए के रूप में अनुरोध है कि आसानी से वापस अंत के साथ नहीं किया जा सकता करने के लिए कुछ अन्य सुविधा को जोड़ने के लिए की जरूरत है या आउटगोइंग प्रतिक्रियाओं में बदलाव करें n कई वापस अंत सेवाओं में
  • एक लोड-संतुलन सेवा

प्रदान करने के लिए जब तक अपनी आवश्यकताओं काफी सरल हैं, यह HAproxy के रूप में एक समर्पित प्रॉक्सी इस तरह का उपयोग करने के बाद से नोड http-प्रॉक्सी नहीं बल्कि साधारण है बेहतर होगा ।

+0

दरअसल, नोड-http-प्रॉक्सी इस सामान को बहुत अच्छी तरह से संभाल सकता है। नोडजित्सु उत्पादन में नोड-http-प्रॉक्सी का उपयोग करता है, और यह आपकी सूची में लगभग सभी चीजें करता है। इसका उपयोग भार संतुलन और एचटीटीपीएस प्रमाणपत्रों के लिए किया जाता है, और अन्य बंदरगाहों को पोर्ट 80 पर रीडायरेक्ट करता है। आप [अनुरोधों को संशोधित करने के लिए मिडलवेयर भी जोड़ सकते हैं] (http://blog.nodejitsu.com/http-proxy-middlewares) नोड-http में -proxy। – CodeRarity

+0

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

+0

मुझे लगता है कि कई नोड ऐप्स अच्छी तरह से प्रलेखित नहीं हैं ... उन मामलों में, प्रलेखन कोड ही है (जो हमेशा अच्छी तरह से लिखित दस्तावेज पढ़ने के रूप में अच्छा नहीं होता है)। – trusktr

1

ठीक है, अगर आप केवल सर्वर का एक उदाहरण चला रहे हैं, तो वास्तव में कोई कारण नहीं है। नोड-http-प्रॉक्सी दस्तावेज़ कई ऐप्स में एक एकल SSL प्रमाणपत्र का उपयोग करते हुए उल्लेख करते हैं, जो बहुत संभव है। आप कई HTTP और वेब सॉकेट सर्वरों में संतुलन भी लोड कर सकते हैं (कहें, वास्तविक समय डेटा के लिए 10 सॉकेट.ओ सर्वर चलाएं लेकिन संपत्तियों और आरईएसटी एपीआई को पूरा करने के लिए केवल 1 HTTP सर्वर)। बेशक एक उदाहरण के साथ ये कोई लाभ नहीं देते हैं।

आप sudo बिना नोड सर्वर को चलाने के लिए चाहते हैं, तो हो सकता है आप ऊपर आईपी तालिकाओं पोर्ट अग्रेषण पोर्ट 80 से एक बंदरगाह के लिए 1024 के ऊपर देखें Can I run Node.JS with low privileges? की स्थापना

+0

आप उसी प्रमाणपत्र का उपयोग कई नोड "सर्वर" के लिए कर सकते हैं जब तक आप एक ही आईपी पते से चलते हैं। एकाधिक आईपी पते को या तो एकाधिक प्रमाणपत्रों की आवश्यकता होती है या वाइल्डकार्ड एड्रेसिंग या "सर्वर वैकल्पिक नाम" एक्सटेंशन का उपयोग करना जो पुराने ब्राउज़र पर समर्थित नहीं है। इसके लिए आपको प्रॉक्सी की आवश्यकता नहीं है। –

1

हम मुख्य रूप से http-प्रॉक्सी का उपयोग एकाधिक वापस की कोशिश कर सकते एक एकल आईपी के पीछे सर्वर भेजें, लेकिन हम http को https को अग्रेषित करने के लिए इसका भी उपयोग करते हैं। यह हमारे ऐप को मजबूत करता है।

सुरक्षा के अनुसार, आपको अपने ऐप की तुलना में http-proxy की अच्छी गुणवत्ता पर अधिक भरोसा हो सकता है। नोडजित्सु द्वारा निर्मित प्रॉक्सी उत्पादन के लिए तैयार है और अपने स्वयं के ऐप के बजाय http-प्रॉक्सी पर विशेषाधिकार प्राप्त करने के लिए अटैचमेंट्स (निजी कुंजी फ़ाइलों को पढ़ने) के लिए कठिन होना चाहिए (बेशक यह आपके सुरक्षा विकास कौशल और आपके विश्वास पर निर्भर करता है ओपन सोर्स http-प्रॉक्सी प्रोजेक्ट में)।

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