在node.js中重定向localhost url并表达

时间:2014-10-18 16:31:13

标签: node.js redirect express

我有一个项目,用户连接到我的路由器,然后在地址栏中输入地址http://192.168.1.50:9091以连接到页面。我希望有一种比这个长IP地址更容易输入的方法。

到目前为止发生了什么:

var express = require('express');
var app = express()
  , http = require('http')
  , server = http.createServer(app)
  , io = require('socket.io').listen(server)
  , fs = require('fs')

server.listen(9093);

var nRequest = 0;
var nConnexs = 0;


app.get('/', function (req, res) {
  res.sendfile(__dirname + '/client_app.html');
});

app.get('/2', function (req, res) {   res.sendfile(__dirname +
'/client_app2.html'); });

2 个答案:

答案 0 :(得分:1)

我不确定你的意思是:

  

我有一个用户连接到我的路由器的项目

Node.js应用程序正在您的计算机上。在某人访问您的机器(通过IP)之前,永远不会访问该应用程序。

因此,您必须在用户和将要引导用户访问IP的应用程序之间放置一些内容。对于真实的网站,这是使用DNS完成的。您注册域名并告知DNS服务要重定向到的计算机的IP。

如果您可以控制路由器(内部网络等),则可以将别名映射到您的IP地址。这完全取决于您的路由器是运行DNS服务器还是支持DNSMasq。您需要检查您的路由器制造商/型号/等。

最后,如果有少量用户访问您的网站,您可以随时让他们使用hosts文件将名称映射到IP。该文件的位置取决于操作系统;只是谷歌:edit hosts file

答案 1 :(得分:1)

我假设用户最初连接到路由器的公共IP地址或DNS表示。如果是这种情况,您通常可以将路由器配置为执行端口转发,以便特定端口上的传入请求自动路由到网络上的特定专用IP地址。在这种情况下,用户将连接到您的路由器,但该请求将自动转发到您的内部节点服务器,因此用户最终将直接连接到您的节点服务器。

此类配置附带常规安全警告。这样做意味着必须正确配置节点服务器以防止Internet攻击,并且必须使用适当的安全预防措施编写节点应用程序 - 特别是因为对运行节点服务器的计算机的任何损害都可以访问您的内部网络。

如果您向我们展示了用户在连接到路由器时最初连接的内容,我们可以提供一个更明确的示例,说明如何配置路由器以利用端口转发。