Benutzerdefinierte Domäne für eine von Node.js gehostete Website im privaten Netzwerk

Benutzerdefinierte Domäne für eine von Node.js gehostete Website im privaten Netzwerk

Ich habe mir eine Lernaufgabe gestellt: eine schöne Website zu erstellen, die von einem Node.js-Server gehostet wird, auf den mein Heimnetzwerk zugreifen kann. Auf meinem Basissystem läuft Windows 7, und ich möchte dieser Website eine benutzerdefinierte Domäne zuweisen, damit der Zugriff von anderen Geräten aus problemlos möglich ist.

Ich habe meine Hostdatei bearbeitet, um hinzuzufügen mydomain- funktioniert 127.0.0.1jetzt http://mydomain:8080auf derselben Maschine, aber verschiedene Geräte können nicht darauf zugreifen (entspricht localhost, was verständlich ist, da andere Geräte es nicht verwenden können). Jetzt denke ich, dass ich vielleicht eine Möglichkeit brauche, meine Netzwerk-IP-Adresse statisch zu machen und diese IP dann in der Hostdatei „mydomain“ zuzuordnen.

Ist dies der beste Weg, um eine benutzerdefinierte Domäne zugänglich zu machen, oder gibt es eine Lösung mit JavaScript über Node.js/Express (Framework)/HTTP, mit der ich meine IP-Adresse dynamisch halten kann? Ich habe über die Verwendung von Proxys gelesen, aber könnte dies zu unerwartetem Verhalten meines Servers führen?

Im Idealfall würde ich es vorziehen, den Port auch nicht eingeben zu müssen und einfach etwas wiehttp://mydomain

Node.js steht os.networkinterfaces()dafür zur Verfügung – Sie können es durchlaufen und die Netzwerk-IP zurückgeben. Vielleicht brauche ich nur eine Möglichkeit, die Netzwerk-IP einer benutzerdefinierten Domäne zuzuordnen?

Antwort1

Ich sehe also einige Lösungen für Ihr Problem:

  1. Einige SOHO-Router verfügen über DNS-Funktionen, mit denen Sie die IP-Adresse Ihres Computers statisch festlegen und einen DNS-Eintrag erstellen können.
  2. Die meisten modernen Betriebssysteme stellen .localeine Adresse bereit, die sich innerhalb des privaten Netzwerks befindet machinename.local. Sie können dann Node.js ausführen und die .localAdresse verwenden, um den Hostcomputer aufzulösen.

Um Node.js auf Port 80 auszuführen, sollten Sie Ihre .listenFunktion in ändern .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/');

verwandte Informationen