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

3

Eu me dei uma tarefa de aprendizado - crie 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.

Eu editei meu arquivo de host para adicionar mydomain a 127.0.0.1 - agora http://mydomain:8080 funciona na mesma máquina, mas dispositivos diferentes não podem acessá-lo (equivalente a localhost , o que faz sentido para outros dispositivos não pode usá - lo). Agora estou pensando que posso precisar de um modo de tornar meu endereço IP de rede estático e mapeá-lo para “mydomain” 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 produzir um comportamento inesperado do meu servidor?

O ideal é que eu prefira não ter que digitar a porta e usar apenas algo como http://mydomain

O Node.js tem os.networkinterfaces() disponível para ele, o qual você pode iterar e retornar o IP da rede. Talvez eu precise apenas de uma maneira de mapear o IP da rede para um domínio personalizado?

    
por Chicowitz 30.09.2015 / 23:17

1 resposta

2

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

  1. Alguns roteadores SOHO fornecem recursos DNS nos quais você pode definir seu ip como estático para sua máquina e criar um registro DNS.
  2. A maioria dos SOs modernos fornece o endereço .local , que seria o machinename.local na rede privada. Você poderia então executar o Node.js e usar o endereço .local para resolver para a máquina de hospedagem

Quanto à execução do Node.js na porta 80, você deve alterar sua função .listen 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/');
    
por 30.09.2015 / 23:41