如何部署环回? 需要简单的解释

我已经开发了一个Loopback API,并希望将其部署到testing实例(Heroku或Digital Ocean,可能)。

了解如何部署它是相当复杂的。 似乎有很多的解决scheme,从StrongLoop进程pipe理器到一个普通的Node.js服务器…信息不是很消化,所以任何人都可以帮我理解我有什么可能性来部署它,什么是亲/每一个。

我正在阅读一些文档,但感觉有点失落。 已经部署的人的一些意见会很棒,在这一点上,我不能成为唯一感到困惑的人。

第一个区别是如果您打算将其托pipe在服务器(Digital Ocean)上或作为托pipe节点进程(Heroku)。

在Heroku上,你需要了解他们的做法,但是一旦完成,就可以节省你对基础设施pipe理的很多担心。 这不包括StrongPM和Heroku已经是它自己的processmanager。 如果你对Git有基本的了解,不要使用高级的东西。 与操作系统依赖关系,这是从长远来看最容易。 没有经验,但似乎Heroku直接运行Git仓库,所以使用Git是这个模型的一个要求。

在服务器上(如数字海洋),你需要决定一个操作系统,并设置依赖关系,安装节点,数据库等。 一旦你可以用stream程pipe理器来pipe理你的节点进程, StrongPM,尽pipe我已经与之战斗,并且很早以前决定和PM2一起作为进程pipe理器,但是从最初和从长远来看,我发现它们更易于理解和处理。 但是基本和本地机器一样,只需要运行“node server.js”,进程pipe理器只是给它一些更多的细节(比如错误自动重启,监控和可重复进程启动,主要的东西)。

我已经做了很多次了,而且可以相当简单。 最复杂的一点是设置数据库。 对于Heroku,您不能使用文件系统存储(例如,将所有内容都存储在db.json文件中),因为文件系统不是持久的。 所以你需要一个外部数据库,幸运的是Heroku提供了其中的一些插件,例如我强烈推荐的用于MongoDB的mLab。

一旦你调配了数据库,确保为数据源configuration了正确的细节。 下面是一个使用mLab的Heroku托pipe的应用程序的例子(我已经写了一些细节):

"db": { "host": "ds043471-a0.mongolab.com", "port": 43471, "database": "heroku_appxxxxxxx", "username": "heroku_appxxxxxxx", "password": "xxxxxxxxxx", "name": "KaranMongo_live", "connector": "mongodb" } 

你甚至可以在本地testing这个(尽pipe最好的做法是使用单独的数据源JSON文件进行开发/生产)。

接下来,您需要进行一些调整,使您的应用程序“Heroku就绪”:

  1. 添加Strongloop buildpack,即heroku buildpacks:set https://github.com/strongloop/strongloop-buildpacks.git
  2. 创build一个只需要一行的Procfile: web: slc run

然后推送到你的heroku应用程序(假设你已经正确设置了远程):

 git push heroku master 

魔法。 它build立和部署。

  1. 按照这里的指导来安装NodeJS 如何在Ubuntu 16.04上设置Node.js生产应用程序,但不是pm2 start hello.jsinput你的pm2 start hello.js pm2 start server/server.js

  2. 编辑你的ngnixconfiguration文件sudo nano /etc/nginx/sites-available/default

    位置/ {proxy_pass http:// localhost:3000 ; proxy_http_version 1.1; proxy_set_header升级$ http_upgrade; proxy_set_header连接“升级”; proxy_set_header主机$主机; proxy_cache_bypass $ http_upgrade; proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $ scheme; }

  3. 重新启动nginx sudo systemctl restart nginx