node.js установить на Amazon EC2

Итак, я устанавливаю node.js на amazon ec2 с ubuntu 8.04 и запускаю node sayhello.js, который представляет собой этот код:

 var sys = require('sys'),
    http = require('http');
 http.createServer(function (req, res) {
   setTimeout(function () {
     res.writeHead(200, {'Content-Type': 'text/html'});
     res.write('<br/><strong>&nbsp;&nbsp;&nbsp;&nbsp;Hello World!</strong>');
     res.end();
     sys.puts(sys.inspect(req, false));
   }, 2000);
 }).listen(8000);
   sys.puts('Server running at http://ec2-174-12-132-193.compute-1.amazonaws.com:8000/');

я понимаю

Сервер работает по адресу http://ec2-174-12-132-193.compute-1.amazonaws.com:8000/

правильно отображается в консоли.

В руководстве говорится: перейдите по адресу: 8000 в браузере, и вы должны увидеть Hello World!

Я перехожу на страницу http://ec2-174-12-132-193.compute-1.amazonaws.com:8000/ (не настоящий адрес), но он не загружается (просто подключается ...). В примере используется localhost, является ли общественное достояние некорректным или что-то в этом роде?

Спасибо.


person JSNewbie    schedule 08.07.2010    source источник


Ответы (3)


Вам необходимо открыть порт 8000 в вашей группе безопасности.

Если у вас установлены инструменты командной строки EC2, попробуйте запустить:

$ ec2-authorize default -p 8000

Предполагается, что вы используете группу безопасности по умолчанию. Если нет, измените default на имя вашей группы безопасности.

Если вы просто используете веб-интерфейс, выполните следующие действия:

  1. Войдите в консоль AWS
  2. Выберите Amazon EC2 на верхней панели.
  3. Нажмите Группы безопасности в меню слева.
  4. Нажмите на группу безопасности, которую вы назначили своему экземпляру EC2 (возможно, просто по умолчанию)
  5. В нижней части окна щелкните вкладку Входящие.
  6. Установите Диапазон портов: на 8000 и оставьте два других входа без изменений.
  7. Нажмите Добавить правило.
person chriso    schedule 31.03.2011

Убедитесь, что в группе безопасности, связанной с экземпляром EC2, порт 8000 открыт для вашего IP-адреса или для всех.

person Kevin    schedule 21.12.2010

Проверьте следующее:

  1. Что вы разрешаете доступ со всех IP-адресов к порту 8000 в группе безопасности.
  2. Что вы изменили ПРАВИЛЬНУЮ группу безопасности (например, quicklaunch-1), а не, скажем, quicklaunch-2. Я исправил ошибку еще раз, чем мне хотелось бы признать.
  3. Что вы открыли порт 8000 на брандмауэре Linux
  4. Что ваш сервер действительно работает (вы должны увидеть «Прослушивание порта 8000» в командной строке).

Вот руководство по настройке веб-сервера Node.js на Amazon EC2: http://www.lauradhamilton.com/how-to-set-up-a-nodejs-web-server-on-amazon-ec2

Это немного сложнее, чем то, что вы делаете (потому что он использует переадресацию IP с 80 на 8080), но часть открытия брандмауэра Linux такая же.

person user2437742    schedule 23.07.2013