Не удается подключиться к веб-серверу простого узла, размещенному на экземпляре EC2 - PullRequest
0 голосов
/ 13 марта 2019

Невозможно поразить мой простой веб-сервер узла, размещенный на Ubuntu EC2 в AWS. Но я не вижу, что я что-то пропустил! Я предоставил скриншоты ниже в AWS - Чего мне не хватает? Пожалуйста помоги!. Большое спасибо,

Код узла

const http = require('http');

const hostname = '127.0.0.1';
const port = 8080;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

Командная строка

$ node index.js 

Ответ командной строки

Server running at http://127.0.0.1:8080/

EC2 экземпляр

ec2 settings

Настройки безопасности

security settings

Эластичные настройки IP

enter image description here

Браузер

http://"Public DNS (IPv4) value":8080/ 

Обновление

enter image description here

1 Ответ

1 голос
/ 13 марта 2019

При выборе типа выберите «Пользовательское правило TCP»:

Port Rules

и введите 8080 в поле диапазона портов.

РЕДАКТИРОВАТЬ

Однако, это только дает вам часть пути.Если вы заметили, ваш сервер прослушивает IP-адрес 127.0.0.1.Это означает, что это не слушает внешний мир, только localhost.Чтобы получить доступ к нему за пределами серверного компьютера, вам нужно изменить код на:

const http = require('http');

const hostname = '0.0.0.0';
const port = 8080;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

Изменение заключается в том, что теперь вы слушаете "все интерфейсы" по сравнению с просто localhost.

...