プライベートネットワーク上の Node.js ホスト Web サイトのカスタム ドメイン

プライベートネットワーク上の Node.js ホスト Web サイトのカスタム ドメイン

私は自分自身に学習課題を与えました。自宅のネットワークからアクセスできる Node.js サーバーからホストされる素敵な Web サイトを作成することです。私の基本システムは Windows 7 を実行しており、他のデバイスから簡単にアクセスできるように、この Web サイトにカスタム ドメインを割り当てたいと考えています。

ホスト ファイルを編集して を追加しましたmydomain127.0.0.1これでhttp://mydomain:8080同じマシンで動作しますが、別のデバイスからはアクセスできません ( と同等で、localhost他のデバイスが使用できないのは当然です)。ここで、ネットワーク IP アドレスを静的にし、その IP をホスト ファイル内の「mydomain」にマップする方法が必要かもしれないと考えています。

これはカスタム ドメインをアクセス可能にする最善の方法ですか、それとも IP アドレスを動的に保つことができる Node.js/Express (フレームワーク)/HTTP 経由で JavaScript を使用するソリューションはありますか? プロキシの使用について読みましたが、サーバーから予期しない動作が発生する可能性がありますか?

理想的には、ポートを入力する必要もなく、次のようなものを使用するのが望ましいです。http://mydomain

Node.jsos.networkinterfaces()には、反復処理してネットワーク IP を返す機能があります。ネットワーク IP をカスタム ドメインにマップする方法が必要なだけでしょうか?

答え1

あなたの問題に対する解決策はいくつか考えられます:

  1. 一部の SOHO ルーターは DNS 機能を提供しており、マシンの IP を静的に設定して DNS レコードを作成できます。
  2. 最近のOSのほとんどは、プライベートネットワーク内の.localアドレスを提供しています。Node.jsを実行して、そのアドレスを使用してホスティングマシンに解決することができます。machinename.local.local

ポート 80 で Node.js を実行する場合は、.listen関数を に変更する必要があります.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/');

関連情報