अद्यतन कनेक्ट नहीं कर सकता: नहीं 8000.EC2 Node.js आवेदन की मेजबानी - दूर से बंदरगाह
बाहर कर देता है केवल समस्या यह है कि मैं एक फ़ायरवॉल है कि कुछ बंदरगाहों अवरुद्ध पीछे था था, लेकिन संपादित करें : टी एल; डॉ: दूर से पोर्ट 9000 से कनेक्ट नहीं कर सकता है, लेकिन पोर्ट 8000 ठीक है और मैं नहीं जानता कि क्यों :(
मुझे मिल गया है यह है कि बंदरगाह पर चल रहा है आवेदन Node.js और दूसरा एक (http-proxy) पोर्ट पर चल रहा है।
मेरी मशीन पर उन्हें चल रहा है ठीक है, लेकिन मैं कुछ समस्याएं हैं जब मैं उन्हें एक सर्वर पर डाल (EC2 उदाहरण - मैं वेब कंसोल सुरक्षा समूह में बंदरगाहों को खोलने के लिए किया था [1])। एप्लिकेशन ठीक काम करता है, लेकिन मैं बाहर से प्रॉक्सी से कनेक्ट नहीं कर सकता। मैंने सर्वर पर $ telnet localhost 9000
करने की कोशिश की और यह कनेक्ट हो गया, इसलिए मुझे लगता है कि यह एक अच्छा संकेत है।
एक और चीज जो मैंने देखा है वह यह है कि यदि मैं अलग-अलग अनुप्रयोगों को चलाने की कोशिश करता हूं, तो मुझे एक ही परिणाम मिलते हैं, यानी 8000 - ठीक है, 9 000 - NOTOK: <। हालांकि, अगर मैं पोर्ट को बदलता हूं तो प्रॉक्सी 9000 से 8000 तक उपयोग करता है, यह काम करता है। और अगर मैं बंदरगाहों को स्विच करता हूं, यानी आवेदन: 9 000 और प्रॉक्सी: 8000, मैं प्रॉक्सी से कनेक्ट कर सकता हूं, लेकिन एप्लिकेशन के लिए नहीं। मैंने अन्य नंबरों की भी कोशिश की है, लेकिन यह इसे ठीक नहीं करेगा।
मुझे लगता है कि वास्तव में कुछ बेवकूफ है जिसमें एप्लिकेशन के साथ कुछ भी नहीं है और मैं याद कर रहा हूं, लेकिन मैं अपनी उंगली उस पर नहीं डाल सकता, इसलिए क्या किसी को पता है कि यह सेटअप क्यों काम नहीं करता है ?
server.js
var express = require('express.io');
var app = module.exports = express();
require('./proxy');
app.http().io();
app.listen(8000);
// ...
proxy.js
var httpProxy = require('http-proxy');
var url = require('url');
httpProxy.createServer(function(req, res, proxy) {
// ...
proxy.proxyRequest(req, res, {
host: destination.host,
port: 80
});
}).listen(9000);
$ netstat -pln | grep node
उत्पादन
tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN 1487/node
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 1487/node
सुरक्षा समूह नियम
क्या आपने पोर्ट 9000 खोलने के लिए अपने ec2 इंस्टेंस को कॉन्फ़िगर किया था? – sheldonk
@sheldonk हाँ, मैंने किया, और मुझे यकीन है (यकीन नहीं है कि मैं इसे यहां कैसे दिखा सकता हूं)। फिलहाल, मेरे पास 'iptables -F''d है और यह सब ठीक काम कर रहा है ... – andreimic
आपको यह सुनिश्चित करने की भी आवश्यकता है कि आपके ईसी 2 सुरक्षा समूह में पोर्ट 9000 खुला है - यह ऐसा कुछ है जो मुझे विश्वास है कि पहले होना है उदाहरण पहली बार लॉन्च किया गया है, लेकिन यकीन नहीं है। – Joe