Запуск node.js на порту, отличном от порта 80

У меня есть веб-сервер apache, работающий на моем сервере ubuntu. Недавно я пытался изучить JavaScript и наткнулся на node.js. Я хотел бы создать несколько многопользовательских игр для веб-приложений, и я узнал, что node.js может пригодиться. У меня возникли некоторые проблемы с конфигурацией. Как мне запустить сервер apache и node.js на одном компьютере? Я не возражаю, если приложения на node.js находятся на другом порту, и к ним нужно получить доступ, введя имя веб-сайта: номер порта. Я не слишком беспокоюсь о преимуществах/недостатках в производительности, я просто хотел бы воспользоваться возможностью, чтобы попробовать JavaScript и node.js. Есть ли файлы, которые нужно изменить?

Вот код, который у меня есть для скрипта, работающего на сервере (пока что я использую его только для пробных целей):

var http = require('http');

 http.createServer(function (req, res) {
      res.writeHead(200, {'Content-Type': 'text/plain'});
      res.end('Hello World\n');
  }).listen(1337);

Я запустил сервер (узел fileName.js). Однако, когда я пытаюсь получить к нему доступ с другого клиентского компьютера в сети, похоже, он не работает, поскольку страница не существует.

Какова процедура, чтобы я мог вывести Hello World в свой браузер, когда я захожу на сервер через порт 1337?


person lbj-ub    schedule 18.01.2012    source источник
comment
Убедитесь, что порт 1337 не заблокирован каким-либо брандмауэром (например, группами безопасности Amazon EC2) и что порт перенаправляется правильно, если вы находитесь за маршрутизатором.   -  person wsanville    schedule 18.01.2012
comment
Ваш пример работает, похоже, вы либо блокируете порт 1337, либо вводите неправильный IP-адрес на другом компьютере.   -  person bennedich    schedule 18.01.2012


Ответы (2)


Попробуйте сделать это так:

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, "your-adapter-ip"); // don't forget adapter IP

А затем из сети укажите в браузере http://your-adapter-ip:1337.
Убедитесь, что на этом порту открыт брандмауэр.

person Frankie    schedule 18.01.2012
comment
или «0.0.0.0» вместо IP для прослушивания на любом интерфейсе - person Timothy Meade; 18.01.2012

Вы должны иметь возможность просматривать http://your_ubuntu_server_ip:1337 с другого клиентского компьютера.

Можете ли вы подключиться к веб-серверу Apache с другого компьютера? Если это так, вы можете остановить apache, изменить свой код, чтобы использовать порт 80, и повторить попытку.

person mike    schedule 18.01.2012