
私は自分自身に学習課題を与えました。自宅のネットワークからアクセスできる Node.js サーバーからホストされる素敵な Web サイトを作成することです。私の基本システムは Windows 7 を実行しており、他のデバイスから簡単にアクセスできるように、この Web サイトにカスタム ドメインを割り当てたいと考えています。
ホスト ファイルを編集して を追加しましたmydomain
。127.0.0.1
これでhttp://mydomain:8080
同じマシンで動作しますが、別のデバイスからはアクセスできません ( と同等で、localhost
他のデバイスが使用できないのは当然です)。ここで、ネットワーク IP アドレスを静的にし、その IP をホスト ファイル内の「mydomain」にマップする方法が必要かもしれないと考えています。
これはカスタム ドメインをアクセス可能にする最善の方法ですか、それとも IP アドレスを動的に保つことができる Node.js/Express (フレームワーク)/HTTP 経由で JavaScript を使用するソリューションはありますか? プロキシの使用について読みましたが、サーバーから予期しない動作が発生する可能性がありますか?
理想的には、ポートを入力する必要もなく、次のようなものを使用するのが望ましいです。http://mydomain
Node.jsos.networkinterfaces()
には、反復処理してネットワーク IP を返す機能があります。ネットワーク IP をカスタム ドメインにマップする方法が必要なだけでしょうか?
答え1
あなたの問題に対する解決策はいくつか考えられます:
- 一部の SOHO ルーターは DNS 機能を提供しており、マシンの IP を静的に設定して DNS レコードを作成できます。
- 最近の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/');