专用网络上 Node.js 托管网站的自定义域

Chi*_*itz 5 domain web-hosting javascript node.js

我给自己布置了一个学习任务 - 创建一个漂亮的网站,由可访问我的家庭网络的 Node.js 服务器托管。我的基本系统运行的是 Windows 7,我想为该网站提供一个自定义域,以便从其他设备轻松访问它。

\n\n

mydomain我已编辑要添加的主机文件127.0.0.1- 现在http://mydomain:8080可以在同一台计算机上工作,但不同的设备可以\xe2\x80\x99t 访问它(相当于localhost,这意味着其他设备可以\xe2\x80\x99t 使用它)。现在我想我可能需要一种方法来使我的网络 IP 地址静态,然后将该 IP 映射到主机文件中的 \xe2\x80\x9cmydomain\xe2\x80\x9d 。

\n\n

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

\n\n

理想情况下,我不想输入端口,而只需使用类似的东西http://mydomain

\n\n

Node.js 可以os.networkinterfaces()使用它 - 您可以迭代它并返回网络 IP。也许我只需要一种将网络 IP 映射到自定义域的方法?

\n

小智 2

所以我看到了一些解决你问题的方法:

\n\n
    \n
  1. 一些 SOHO 路由器确实提供 DNS 功能,您可以将计算机的 IP 设置为静态并创建 DNS 记录。
  2. \n
  3. 大多数现代 OS\xe2\x80\x99s 确实提供了专用网络内的.local地址。machinename.local然后,您可以运行 Node.js 并使用该.local地址解析到托管计算机
  4. \n
\n\n

至于在端口 80 上运行 Node.js,您应该将.listen函数更改为.listen(80).

\n\n
var http = require(\'http\');\n\nhttp.createServer(function (req, res) {\n res.writeHead(200, {\'Content-Type\': \'text/plain\'});\n res.end(\'Hello World\\n\');\n}).listen(80, "127.0.0.1");\n\nconsole.log(\'Server running at http://127.0.0.1:80/\');\n
Run Code Online (Sandbox Code Playgroud)\n