Угловой - не может служить на EC2 - PullRequest
0 голосов
/ 01 октября 2018

Я создал приложение Angular на EC2 (RHEL 7) с ng new app1 и попытался обслужить его с помощью:

ng new app1
cd app1
ng serve --port=4200

Когда я перехожу на URL: IP:4200 - получаю следующую ошибку:

Exception:  tcp_error
Exception details:  A communication error occurred: "Connection refused"

Но когда я пытаюсь с NodeJS на том же сервере и на том же порту - я вижу результат на том же IP:4200.Код NodeJS:

var express = require('express');
var app = express();
app.get('/', function (req, res) {
  res.send('Hello World 3!');
});
app.listen(4200, function () {
  console.log('Example app listening on port 4500!');
});

Что может быть не так с Angular и EC2?Я могу запустить точно такой же код Angular на своем локальном компьютере, и когда перейду на localhost:4200 - я смогу увидеть результаты (но не с EC2 IP:4200).

Ответы [ 2 ]

0 голосов
/ 01 октября 2018
  1. используйте "netstat -na | grep: 4200", чтобы проверить, открыт ли порт 4200
  2. , используйте telnet 127.0.0.1 4200, чтобы проверить, можете ли вы подключиться к этому порту через внутренний ip
  3. используйте telnet [external ip] 4200, чтобы проверить, можно ли подключить этот порт через внешний ip

Чтобы найти проблему.

0 голосов
/ 01 октября 2018

Согласно выводу netstat, сервер Angular настроен на прослушивание только тех соединений, которые нацелены на ip 127.0.0.1.

Но соединения извне будут нацелены на другой IP, поэтому вам нужно пройтитот другой IP с параметром --host.Или, чтобы упростить задачу, используйте IP 0.0.0.0, что означает «каждый IP, на который отвечает этот хост».

Таким образом, команда должна выглядеть следующим образом:

ng serve --port=4200 --host=0.0.0.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...