如何部署环回? 需要简单的解释
我已经开发了一个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就绪”:
- 添加Strongloop buildpack,即
heroku buildpacks:set https://github.com/strongloop/strongloop-buildpacks.git
- 创build一个只需要一行的Procfile:
web: slc run
然后推送到你的heroku应用程序(假设你已经正确设置了远程):
git push heroku master
魔法。 它build立和部署。
-
按照这里的指导来安装NodeJS 如何在Ubuntu 16.04上设置Node.js生产应用程序,但不是
pm2 start hello.js
input你的pm2 start hello.js
pm2 start server/server.js
-
编辑你的
ngnix
configuration文件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; }
-
重新启动nginx
sudo systemctl restart nginx
- heroku nodejs应用程序如何获得我的应用程序根目录的绝对path?
- Heroku + MongoLab插件与Node.js应用程序连接错误 – 错误:连接ECONNREFUSED 127.0.0.1:27017
- 将Express React Redux模板部署到Heroku的步骤
- 在运行heroku本地网时,babel-node无法识别
- 如何在Heroku上启用ES2017function来运行Node.js应用程序?
- 如何在Heroku上使用Strongloop部署Node.js应用程序?
- 错误:证书在节点中已过期
- Heroku H99错误,服务器无法parsing
- 在heroku上的socket.io上获取套接字IP