एक ही पोर्ट पर कई सर्वर चलाएं


19

मैं XAMPP सर्वर और पोर्ट 80 पर एक Nodejs सर्वर चलाना चाहूंगा।

अगर सर्वर को HTTP रिक्वेस्ट मिलती है, तो XAMPP इसे हैंडल करेगा, अगर सर्वर को एक वेबसोकेट रिक्वेस्ट मिलती है, तो Nodes

यह कैसे संभव है? यदि कोई पोर्ट पहले से उपयोग में है, तो मैं अन्य सर्वर प्रोग्राम शुरू नहीं कर सकता।

जवाबों:


45

आपको ऐसा करने के लिए एक रिवर्स प्रॉक्सी का उपयोग करने की आवश्यकता होगी, जैसे Apache 2.4। mod_proxy_wstunnel के साथ ।

इसे एक दृश्यपटल के रूप में उपयोग करें और फिर उचित बैकएंड पर कनेक्शन को सुरंग करें।


22

केवल एक ही प्रक्रिया एक ही आईपी पते और प्रोटोकॉल के लिए एक विशेष बंदरगाह पर सुन सकती है, क्योंकि अन्यथा ऑपरेटिंग सिस्टम को पता नहीं होगा कि प्राप्त पैकेट भेजने की कौन सी प्रक्रिया है।

आप जो चाहते हैं उसे प्राप्त करने के लिए आपको एक रिवर्स प्रॉक्सी का उपयोग करना होगा जो कि पोर्ट 80 और आगे के ट्रैफ़िक को सही गंतव्य पर सुनेगा। ऐसा करने के कई तरीके हैं। उदाहरण के लिए आप अपने वेब सर्वर (अपाचे) को वेबस्केट अनुरोधों को अग्रेषित करने के लिए सेट कर सकते हैं या आप HTTP ट्रैफिक को अग्रेषित करने के लिए Node.js को कॉन्फ़िगर कर सकते हैं। उपलब्ध विकल्पों पर शोध करें और अपनी आवश्यकताओं के अनुसार सबसे अच्छा विकल्प चुनें।


3

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

जैसा कि आप केवल पोर्ट 80 का उल्लेख करते हैं, मैं मानता हूं कि आप HTTPS का उपयोग नहीं कर रहे हैं। यदि आप हैं तो यदि आप रिवर्स प्रॉक्सी विकल्प का उपयोग कर रहे हैं तो आपको बहु-नाम SSL प्रमाणपत्र की आवश्यकता है या SNI कॉन्फ़िगर करें और इस तथ्य के साथ रहें कि कुछ पुराने ग्राहक (XP, पुराने Android संस्करणों पर IE) सक्षम नहीं होंगे। त्रुटियों के बिना कनेक्ट करें। एकाधिक पते विकल्प को अतिरिक्त पते (एस) को निर्दिष्ट करने की आवश्यकता पर इस मुद्दे को दरकिनार करते हैं।


बस एक छोटा बिंदु: यदि आप पहले से ही NAT का उपयोग आईपी का अनुवाद करने के लिए कर रहे हैं, तो आप पोर्ट पुनर्निर्देशन भी कर सकते हैं। उदाहरण के लिए, यदि आप एक इंटरनेट-सुलभ अपाचे सर्वर चला रहे हैं और परीक्षण के लिए XAMPP का उपयोग करना चाहते हैं, तो Apache को एक गैर-मानक पोर्ट पर चलाएँ और आंतरिक IP के गैर-मानक पोर्ट के लिए NAT NAT बाहरी पोर्ट का अनुरोध करें। यह पोर्ट 80 पर XAMPP चलाने की अनुमति देता है।
Calrion
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.