Веб-сервер Node.js Amazon EC2 в качестве примера - никакой результат

Большинство серверов работает на CentOS Linux (клон Redhat Linux). Ubuntu/Debian является также хорошим выбором. Зависит.. на которой платформе Вы способны. Все хороши.

1
задан 31 January 2012 в 14:21
1 ответ

Предположительно вы имеете в виду следующий пример:

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');

Сообщение, которое вы бы получили, такое: Сервер работает по адресу http: // 127.0.0.1 : 1337 / - выделенная часть здесь является ключевой, т.е. сервер настроен для прослушивания только IP-адреса 127.0.0.1 (также известного как localhost ), в то время как вы пытаетесь просматривать его через свой эластичный IP-адрес. .

Соответственно, вы можете достичь своей цели, заменив 127.0.0.1 в операторе listen () на частный / внутренний IP-адрес , который был назначен вашему экземпляру EC2.


Варианты

В качестве альтернативы вы можете использовать вместо этого общедоступное / внешнее DNS-имя, которое демонстрирует менее известное динамическое разрешение IP-адреса в зависимости от источника DNS-запроса, см., Например, Почему у меня два IP-адреса и два имени хоста? :

Внешнее DNS-имя (которое выглядит как ec2-72-44-45-204.compute-1.amazonaws.com) разрешается на общедоступный IP адрес инстанса за пределами сети Amazon EC2 и частной IP-адрес из сети Amazon EC2.

Наконец (согласно комментарию cyberx86, спасибо!), Вы можете полностью опустить необязательный параметр адреса (но см. Ниже), см. сервер .listen (порт, [имя хоста], [обратный вызов]) :

Если имя хоста не указано, сервер будет принимать соединения направлен на любой IPv4-адрес (INADDR_ANY).

Однако имейте в виду, что это не всегда может быть правильным в расширенных сценариях, поскольку после недавнего внедрения Elastic может быть доступно более одного сетевого интерфейса. Сетевые интерфейсы (ENI) в виртуальном частном облаке (VPC) , что дает вам возможность создавать дополнительные ENI и присоединять второй ENI к экземпляру (опять же, он находится в VPC) .

5
ответ дан 3 December 2019 в 17:16

Теги

Похожие вопросы