Назад | Перейти на главную страницу

node.js 0.4.0 не обслуживает файлы на внешние IP-адреса

Когда я запускаю следующий скрипт

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

при выполнении:

узел hello.js &

curl localhost

Я получил:

Hello World

Но когда я пытаюсь получить доступ к этой странице со своего компьютера (который не совпадает с этим сервером), я получаю сообщение об ошибке «эта веб-страница не может быть найдена». Это не может быть проблемой с брандмауэром, потому что я могу нормально запустить nginx на 80-м порту.

Вы сказали серверу прослушивать 127.0.0.1, и это внутренний IP-адрес хоста 1

который недоступен извне: скажите своему серверу, чтобы он слушал 0.0.0.0, и тогда он работает

Все еще работаете на 127.0.0.1? Этот IP-адрес является локальным для машины, а не в локальной сети. Вам нужен сетевой IP-адрес.

Измените 127.0.0.1 на свой внешний IP-адрес. Спасибо Алистеру Булману.