私有网络上托管 Node.js 网站的自定义域名

私有网络上托管 Node.js 网站的自定义域名

我给自己布置了一个学习任务——创建一个漂亮的网站,托管在我家网络可访问的 Node.js 服务器上。我的基础系统运行的是 Windows 7,我想给这个网站一个自定义域名,这样就可以从其他设备轻松访问它。

我已经编辑了我的主机文件以添加mydomain127.0.0.1- 现在http://mydomain:8080可在同一台机器上运行,但不同的设备无法访问它(相当于localhost,这意味着其他设备无法使用它)。现在我在想,我可能需要一种方法来使我的网络 IP 地址静态化,然后将该 IP 映射到主机文件中的“mydomain”。

这是使自定义域可访问的最佳方法吗?或者是否有通过 Node.js/Express(框架)/HTTP 使用 JavaScript 的解决方案,让我可以保持 IP 地址动态?我读过有关使用代理的信息,但这是否会导致我的服务器出现意外行为?

理想情况下,我宁愿不必输入端口,而只需使用类似http://mydomain

Node.js 已os.networkinterfaces()提供此功能 - 您可以迭代并返回网络 IP。也许我只需要一种方法将网络 IP 映射到自定义域?

答案1

因此,我看到了针对您的问题的一些解决方案:

  1. 一些 SOHO 路由器确实提供 DNS 功能,您可以将您的机器的 IP 设置为静态并创建 DNS 记录。
  2. 大多数现代操作系统都提供了私有网络内的.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/');

相关内容