2014-06-14 26 views
1

对不起,混淆标题,新的Node.js和Heroku,但试图迅速拿起它。如何使用Heroku部署实时Node.js服务器

我目前拥有一个域名,我的第一个目标是设置域名,它使用Heroku唤醒并运行Node.js,运行我的web.js并显示“Hello world ”。

我已经通过this heroku/node.js tutorial,所以我理解如何在本地设置东西,推送到heroku远程,并运行我的Node.js服务器(我的理解是否正确?)。但是,我无法找到任何关于如何将Node.js文件放到外部服务器(在本例中为我的域)的地方,并将Heroku的服务连接到这些文件,从而允许我的本地计算机与我的服务器上的节点。

如果有任何教程或页面,你会推荐,我会很感激。有点东西,很可能在这里的一些事情混淆。谢谢!

回答

2

Heroku应用程序拥有自己的git存储库。所以,你push从你的本地git目录到heroku的git remote。

设置:

git remote add heroku <git://yourherokurepourl.git> 

,然后每次部署:

git push heroku 

这一切都需要得到Heroku的服务器您的node.js文件。 Heroku遵循foreman作为流程启动器。 foreman需要一个名为procfile的项目根目录中的特殊文件。 procfile有简单的Unix命令在每行推出进程:

web : npm install && node app.js 

所以,当你把你的项目,Heroku的饭桶。它将查找procfile并在此处定义启动进程。你可以在这里放置更多的命令。在本地/开发机器上更好地安装foreman并使用它进行测试。

在heroku应用程序设置中,您可以将您的www.domain.com地址“绑定”到运行在heroku服务器上的节点应用程序。您必须在域提供程序的设置中执行相同的操作。 DNS现在将请求路由到www.domain.com到您应用的服务器IP。

在heroku上,配置生活在环境中。 heroku上有很多process.env.*。您可以通过向foreman提供.env文件进行本地模拟。

最后,在您的node.js代码中确保您收听process.env.PORT提供的值。

连接服务器:

  1. 使用Request模块直接调用其他服务器的URL。
  2. 或者让服务器订阅并发布到集中服务总线。
+0

真棒,感谢您的答案,最终查找绑定域等,并将其设置正确。谢谢! – Befall

0

您正在描述操作两台服务器。一个在Heroku上,一个在你的域名上。我怀疑你没有建立连接,你只能让你的域指向你的Heroku服务器。使用您正在使用的heroku网址与您的域名提供商联系,他们可以为您做到这一点。

实际上,他们会将您的域名“指向”您的Heroku node.js服务器,并从那里按照您的预期行事。