如何为node.js服务器分配域名?

50

我有一个监听4000端口的node.js服务器,访问该服务的URL类似于:

http://42.12.251.830:4000

我购买了一个域名

www.mydomain.com

如何将它分配给我的服务器? 首先我使用转发,但是那样我就不能再使用location.hash来为URL添加聊天频道。 然后我使用类似Header-Redirect的东西。 现在服务可通过mydomain.com访问,但无法通过www.mydomain.com进行访问,而且浏览器窗口中也没有显示域名。 对于我的聊天频道,我需要像这样的东西:

www.mydomain.com/#238husd4


1
请参见:https://dev59.com/o2445IYBdhLWcg3wKHAJ - neiker
1个回答

47

在 node.js 服务器上,你不需要为节点分配域名,而是将应用程序加载到具有 IP 地址的机器上,在你的情况下是 42.12.251.830:4000。然后,你需要确保你的 app 正在监听正确的端口,大多数服务器上的端口是 80

使用 express 就像这样简单:

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

app.get('/', function(req, res) {
  res.sendfile('./public/index.html');
});
server.listen(80);

将域名指向此IP地址是完全不同的问题。 您需要将您的名称服务器指向该IP地址。 您的名称服务器通常是您购买域名的公司,例如GoDaddy是一个域名服务器(DNS)。 因此,如果您在他们那里拥有域名,则可以在其网站上进行DNS设置并更改IP地址。 您的域名将指向您的IP地址,并应呈现您的node.js应用程序。


6
旧问题。但我相信其中还有更多内容。因为端口80需要更高的权限,仅凭这一点是行不通的。让我的应用程序监听端口80只会给我一个无法使用的网页错误。 - David Small
3
是的,在本地计算机上,该端口被阻止了。尝试使用3000或更高的端口。但在生产服务器上,您将想要使用80或443端口。 - Loourr
2
如何阻止其他域名访问服务器IP地址? - Arjun Kava
9
此处的解决方案针对每个IP地址使用一个应用程序的情况。但是,一些服务器使用单个IP地址在单个服务器上托管多个应用程序。您无法将它们全部放在80端口上。 - User
3
好的回答。但我建议不要选择GoDaddy。 - Daan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接