Domínio personalizado para site hospedado em Node.js em rede privada

Domínio personalizado para site hospedado em Node.js em rede privada

Eu me dei uma tarefa de aprendizado - criar um site legal para ser hospedado em um servidor Node.js acessível à minha rede doméstica. Meu sistema básico está executando o Windows 7 e quero dar a este site um domínio personalizado, para que seja fácil acessá-lo de outros dispositivos.

Editei meu arquivo host para adicionar mydomain- 127.0.0.1agora http://mydomain:8080funciona na mesma máquina, mas dispositivos diferentes não podem acessá-lo (equivalente a localhost, o que faz sentido que outros dispositivos não possam usá-lo). Agora estou pensando que talvez precise de uma maneira de tornar meu endereço IP de rede estático e, em seguida, mapear esse IP para “meudomínio” no arquivo host.

Esta é a melhor maneira de tornar um domínio personalizado acessível ou existe uma solução usando JavaScript via Node.js/Express (framework)/HTTP onde posso manter meu endereço IP dinâmico? Eu li sobre o uso de proxies, mas isso pode gerar um comportamento inesperado no meu servidor?

Idealmente, eu preferiria não precisar digitar a porta e apenas usar algo comohttp://mydomain

O Node.js está os.networkinterfaces()disponível - pelo qual você pode iterar e retornar o IP da rede. Talvez eu só precise mapear o IP da rede para um domínio personalizado?

Responder1

Então vejo algumas soluções para o seu problema:

  1. Alguns roteadores SOHO fornecem capacidade de DNS na qual você pode definir seu IP como estático para sua máquina e criar um registro DNS.
  2. A maioria dos sistemas operacionais modernos fornece .localendereços que estariam machinename.localdentro da rede privada. Você poderia então executar o Node.js e usar o .localendereço para resolver a máquina de hospedagem

Quanto à execução do Node.js na porta 80, você deve alterar sua .listenfunção para .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/');

informação relacionada