3

Я дал себе учебное задание - создать хороший веб-сайт, который будет размещаться на сервере Node.js, доступном для моей домашней сети. Моя базовая система работает под управлением Windows 7, и я хочу предоставить этому веб-сайту собственный домен, чтобы получить доступ к нему с других устройств.

Я отредактировал свой хост-файл, добавив mydomain к 127.0.0.1 - теперь http://mydomain:8080 работает на одной машине, но разные устройства не могут получить к нему доступ (эквивалентно localhost , что имеет смысл, что другие устройства не могут используй это). Теперь я думаю, что мне может понадобиться способ сделать IP-адрес моей сети статическим, а затем сопоставить этот IP-адрес с «mydomain» в файле хоста.

Это лучший способ сделать пользовательский домен доступным, или есть решение, использующее JavaScript через Node.js/Express (framework)/HTTP, где я могу сохранить свой IP-адрес диманическим? Я читал об использовании прокси, но может ли это привести к неожиданному поведению моего сервера?

В идеале я бы предпочел не вводить порт, а просто использовать что-то вроде http://mydomain

В Node.js есть os.networkinterfaces() который вы можете перебирать и возвращать сетевой IP-адрес. Может мне просто нужен способ сопоставить сетевой IP с настраиваемым доменом?

1 ответ1

2

Итак, я вижу несколько решений вашей проблемы:

  1. Некоторые маршрутизаторы SOHO предоставляют возможность DNS, с помощью которой вы можете установить статический IP для своего компьютера и создать запись DNS.
  2. Большинство современных ОС предоставляют адрес .local который будет обозначать имя machinename.local в частной сети. Затем вы можете запустить Node.js и использовать адрес .local для разрешения на хост-машину

Что касается запуска Node.js на порт 80, вы должны изменить свою .listen функцию .listen(80)

var 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/');

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .