我给自己布置了一个学习任务——创建一个漂亮的网站,托管在我家网络可访问的 Node.js 服务器上。我的基础系统运行的是 Windows 7,我想给这个网站一个自定义域名,这样就可以从其他设备轻松访问它。
我已经编辑了我的主机文件以添加mydomain
到127.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
因此,我看到了针对您的问题的一些解决方案:
- 一些 SOHO 路由器确实提供 DNS 功能,您可以将您的机器的 IP 设置为静态并创建 DNS 记录。
- 大多数现代操作系统都提供了私有网络内的
.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/');