如何使用Heroku部署实时Node.js服务器

对不起,混淆标题,新的Node.js和Heroku,但试图快速拿起它。

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

我已经经历了这个heroku / node.js教程 ,所以我理解如何在本地设置东西,推送到heroku远程,并运行我的Node.js服务器(我的理解是否正确?)。 然而,我无法find你如何真正把你的Node.js文件到你的外部服务器(在这种情况下,我的域名),并将Heroku的服务连接到这些文件,允许我的本地机器与我的服务器上的节点。

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

Heroku应用程序有他们自己的git仓库。 所以,你从你的本地git目录push送到heroku的git remote。

build立:

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

然后每次部署:

 git push heroku 

这一切都需要让你的node.js文件在heroku的服务器上 。 Heroku跟随foreman作为stream程发射器。 foreman需要一个名为procfile项目根目录中的特殊文件。 procfile有简单的unix命令来启动每一行中的进程:

 web : npm install && node app.js 

所以,当你把你的项目推向heroku的git。 它将查找在procfile定义的procfile和启动进程。 你可以在这里放置更多的命令。 在您的本地/开发机器上更好地安装foreman并使用它进行testing。

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

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

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

连接服务器:

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

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

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