it-swarm-ja.com

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

私は自分自身に学習課題を与えました-私のホームネットワークにアクセス可能なNode.jsサーバーからホストされる素敵なウェブサイトを作成します。私のベースシステムはWindows7を実行しており、他のデバイスから簡単にアクセスできるように、このWebサイトにカスタムドメインを付与したいと思います。

Hostファイルを編集してmydomainを_127.0.0.1_に追加しました-現在、_http://mydomain:8080_は同じマシンで動作しますが、異なるデバイスはそれにアクセスできません(localhostと同等) 、これは他のデバイスがそれを使用できないことを意味します)。今、私は自分のネットワークIPアドレスを静的にして、そのIPをHostファイルの「mydomain」にマップする方法が必要かもしれないと考えています。

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

理想的には、ポートを入力する必要はなく、_http://mydomain_のようなものを使用することをお勧めします。

Node.jsではos.networkinterfaces()を使用できます。これを繰り返して、ネットワークIPを返すことができます。たぶん、ネットワークIPをカスタムドメインにマッピングする方法が必要ですか?

3
Chicowitz

だから私はあなたの問題に対するいくつかの解決策を見ます:

  1. 一部のSOHOルーターは、マシンのIPを静的に設定してDNSレコードを作成できるDNS機能を提供します。
  2. 最近のほとんどのOSは、プライベートネットワーク内の_.local_となる_machinename.local_アドレスを提供します。次に、Node.jsを実行し、_.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/');
_
2
Luke Farnell