
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.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 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:
- 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.
- A maioria dos sistemas operacionais modernos fornece
.local
endereços que estariammachinename.local
dentro da rede privada. Você poderia então executar o Node.js e usar o.local
endereço para resolver a máquina de hospedagem
Quanto à execução do Node.js na porta 80, você deve alterar sua .listen
funçã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/');