指向一个域到我的远程节点JS应用程序?

我试图找出如何在我的Ubuntu 10.04 LTS服务器上部署Node JS。 我读过许多不同的博客和文章,解释多种不同的方式。 大多数似乎过时,或似乎并没有真正的工作。

似乎最简单的解决scheme是使用像永远的东西? 或者是Monit或Supervisor的Upstart。 那是对的吗?

有一件事,我仍然不明白,但是没有使用像Ngnix这样的东西,我怎样才能真正地将我的域名(如example.com)指向我的Node JS应用程序,并且它正在运行端口?

非常感谢任何指导。 我不是这方面的专家,所以请原谅我在这里缺乏知识。 (我正在努力!:)

更新:我问这是为什么我的服务器上我有Ngnix运行我的静态/ Django项目。 我想要使​​用相同的服务器的一些示例节点JS应用程序,我搞乱了。 我已经跟踪了关于虚拟主机和连接到节点JS的链接,这很好,但我仍然不知道如何让我的一个域名实际指向我的服务器上的这个节点应用程序?

您需要将域名的概念与实际的服务器分开。 域名指向一个服务器。 当浏览器(或其他客户端)请求example.com时,DNS会查找关联的IP地址, 并将浏览器指向该IP地址的服务器。

然后浏览器通过查看URL来select通过哪个端口发送请求。 例如,对example.com:345的请求将select端口345.如果未指定,默认情况下,使用HTTP时,将使用端口80。

所以浏览器已经通过端口80发送了它的请求。现在,在你的服务器上,有一个程序监听这个端口。 对你来说,这将是nginx。 Nginx读取请求(“哦,你正在寻找index.html”)并返回你请求的内容。

在你的场景中,Node.JS取代了Nginx。 对于Node.JS来说,它也需要监听一个端口并做出适当的响应。 这就是你的代码进来的地方:

require('http').createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337, "127.0.0.1"); 

这将启动一个服务器,在端口1337进行监听。任何针对example.com:1337的请求都将由此Node.JS应用程序以“Hello World”响应。

tl; dr:您的域名已经指向您的服务器。 您可以在example.com:1337访问您的应用程序,其中1337是您的端口。