Приложение Node.js, размещенное в EC2 - невозможно удаленно подключиться к порту

Обновление: Оказывается, единственной проблемой было то, что я был за брандмауэром, который заблокировал некоторые порты, но не 8000.


Изменить: TL; DR: не удается подключиться к порту 9000 удаленно, но порт 8000 в порядке, и я не знаю почему:(


У меня есть это приложение node.js, которое работает на порту 8000, и другое ( http-proxy), работающее на порту 9000.

Запускать их на моем компьютере - это нормально, но у меня возникают некоторые проблемы, когда я устанавливаю их на сервере (экземплярEC2 - я открыл порты в группе безопасности веб-консоли[1]). Приложение работает нормально, но я не могу подключиться к прокси извне. Я пытался $ telnet localhost 9000 на сервере, и он подключается, так что я думаю, это хороший знак.

Еще одна вещь, которую я заметил, это то, что если я пытаюсь запускать приложения отдельно, я получаю те же результаты, а именно: 8000 - ОК, 9000 - NOTOK:<. Однако, если я изменю порт, который использует прокси с 9000 на 8000, он будет работать. И если я переключаю порты, т.е. приложение: 9000 и прокси: 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

Правила группы безопасности

1

1 ответ

Решение

Оказалось, что проблема вовсе не связана с приложением или настройкой экземпляра EC2.

Сеть, в которой я находился во время тестирования, блокировала некоторые порты. Вот почему при перемещении прокси в порт 8000 он работал нормально, но на 9000 или любые другие случайные, которые я попробовал, это не было. D'о!

Другие вопросы по тегам