Dominio personalizado para el sitio web alojado en Node.js en una red privada

Dominio personalizado para el sitio web alojado en Node.js en una red privada

Me propuse una tarea de aprendizaje: crear un buen sitio web para alojarlo desde un servidor Node.js accesible a mi red doméstica. Mi sistema base ejecuta Windows 7 y quiero darle a este sitio web un dominio personalizado, para que sea fácil acceder a él desde otros dispositivos.

He editado mi archivo host para agregarlo mydomain; 127.0.0.1ahora http://mydomain:8080funciona en la misma máquina, pero diferentes dispositivos no pueden acceder a él (equivalente a localhost, lo que tiene sentido que otros dispositivos no puedan usarlo). Ahora estoy pensando que podría necesitar una manera de hacer que la dirección IP de mi red sea estática y luego asignar esa IP a "midominio" en el archivo host.

¿Es esta la mejor manera de hacer accesible un dominio personalizado o existe una solución que utiliza JavaScript a través de Node.js/Express (framework)/HTTP donde puedo mantener mi dirección IP dinámica? He leído sobre el uso de servidores proxy, pero ¿podría eso generar un comportamiento inesperado en mi servidor?

Idealmente, preferiría no tener que escribir el puerto tampoco y simplemente usar algo comohttp://mydomain

Node.js tiene os.networkinterfaces()disponible, que puede recorrer y devolver la IP de la red. ¿Quizás solo necesito una forma de asignar la IP de la red a un dominio personalizado?

Respuesta1

Entonces veo algunas soluciones a su problema:

  1. Algunos enrutadores SOHO brindan capacidad DNS en la que puede configurar su IP como estática para su máquina y crear un registro DNS.
  2. La mayoría de los sistemas operativos modernos proporcionan .localuna dirección que estaría machinename.localdentro de la red privada. Luego podrías ejecutar Node.js y usar la .localdirección para resolverla en la máquina anfitriona.

En cuanto a ejecutar Node.js en el puerto 80, debes cambiar tu .listenfunción a .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/');

información relacionada