Aktualizacji: Okazuje się, że jedynym problemem było to, że był za firewallem, który zablokował niektóre porty, ale nie 8000.EC2 gospodarzem aplikacji node.js - nie mogą zdalnie połączyć się z portem
Edycja : TL; DR: nie może połączyć się z portem 9000 zdalnie, ale port 8000 jest ok i nie wiem dlaczego :(
mam ten node.js aplikację Działający na porcie i kolejna (http-proxy) działająca na porcie .
uruchamiając je na moim komputerze jest w porządku, ale mam pewne problemy, kiedy kładę je na serwerze (EC2 instancja - Zrobiłem otworzyć porty w grupie zabezpieczeń konsoli internetowej [1]). Aplikacja działa dobrze, ale nie mogę połączyć się z serwerem proxy z zewnątrz. Próbowałem połączyć się z serwerem $ telnet localhost 9000
, więc uważam, że to dobry znak.
Inną rzeczą, którą zauważyłem jest to, że jeśli spróbuję uruchomić aplikacje osobno, otrzymam takie same wyniki, tj .: 8000 - OK, 9000 - NOTOK: <. Jednak jeśli zmienię port używany przez serwer proxy z 9000 na 8000, to działa. A jeśli przełączę porty, tj. Aplikację: 9000 i proxy: 8000, mogę połączyć się z serwerem proxy, ale nie z aplikacją. Próbowałem także innych liczb, ale to też nie naprawiłoby.
Podejrzewam, że jest coś naprawdę głupiego, co nie ma nic wspólnego z samą aplikacją i że tęsknię, ale nie mogę tego zrobić palcem, więc każdy ma pojęcie, dlaczego ta konfiguracja nie działa ?
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
wyjściowe
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
grupowania reguł bezpieczeństwa
Czy skonfigurowałeś instancję EC2 do otwarcia portu 9000? – sheldonk
@sheldonk tak, zrobiłem to i jestem pewien (nie jestem pewien, jak mogę to tutaj pokazać). W tej chwili mam 'iptables -F''d i wszystko działa dobrze ... – andreimic
Musisz także upewnić się, że port 9000 jest otwarty w twojej grupie bezpieczeństwa EC2 - to jest coś, co moim zdaniem musi się wydarzyć przed instancja jest uruchamiana za pierwszym razem, ale nie jest pewna. – Joe