【问题标题】:How to deploy Loopback ? Need simple explanation如何部署环回?需要简单的解释
【发布时间】:2016-08-10 08:13:53
【问题描述】:

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

理解如何部署它是相当复杂的。似乎有很多解决方案,从 StrongLoop Process Manager 到普通的 Node.js 服务器......信息不是很消化,所以任何人都可以帮助我了解我必须部署它的可能性以及利弊是什么每一个。

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

【问题讨论】:

    标签: node.js heroku loopbackjs strongloop


    【解决方案1】:
    1. 按照此处的指南安装 NodeJS How To Set Up a Node.js Application for Production on Ubuntu 16.04 但不要输入pm2 start hello.js,而是输入您的pm2 start server/server.js

    2. 编辑您的 ngnix 配置文件 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 主机 $host; 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

    【讨论】:

      【解决方案2】:

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

      配置数据库后,请确保为数据源配置了正确的详细信息。下面是一个使用 mLab 的 Heroku 托管应用程序示例(我已经 xxxx 删除了一些细节):

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

      您现在甚至可以在本地进行测试(尽管最佳做法是使用单独的数据源 json 文件进行开发/生产)。

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

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

      然后推送到您的 heroku 应用程序(假设您已正确设置遥控器):

      git push heroku master
      

      魔法。它构建和部署。

      【讨论】:

      • 是否可以在我自己的服务器上使用环回?提供的所有选项都是付款和试用。我的意思是loopback不是免费的,是商业框架吗?
      • 是的,您绝对可以在自己的服务器上使用 Loopback。您只需像运行任何其他 Node 进程一样运行它。 PM2 对此有好处。
      【解决方案3】:

      第一个区别是您计划将其托管在服务器上(Digital Ocean)还是托管节点进程(Heroku)。

      在 Heroku 上,您需要了解他们的做法,但一旦完成,您就可以省去很多基础设施管理方面的担忧。这不包括 StrongPM 和 Heroku 已经是它自己的进程管理器。如果你对 Git 有基本的了解并且不使用高级的东西,例如。与操作系统相关性,从长远来看,这是最简单的。没有经验,但 Heroku 似乎直接在 Git 存储库中工作,因此使用 Git 是此模型的要求。

      在服务器(例如数字海洋)上,您需要确定操作系统并设置依赖项、安装节点、数据库等。一旦你可以使用进程管理器来管理你的节点进程,例如。 StrongPM,虽然我曾与它发生过争执,但很久以前就决定使用 PM2 作为流程管理器,我发现它更容易理解和处理,无论是最初还是从长远来看。但是基本和本地机器上的一样,你只需要它运行“node server.js”,进程管理器只是给它更多的花里胡哨(错误时自动重启,监控和可重复的进程启动,是主要内容)。

      【讨论】:

      • 好吧,我没有得到那么大的差异。我试过 Heroku,你是对的,它确实省了一些担心,但也带来了其他的担心......我正在尝试拥有一个全代码基础架构,而 Docker 似乎是我处理 DB + Loopback 的最佳方法,要灵活并且仍然有我所有的代码版本。无论如何感谢您的回复,非常感谢
      • 如何通过 LoopBack 的文档似乎建议的 StrongLoop Process Manager (SLC) 处理 Digital Ocean 上的部署? docs.strongloop.com/display/SLC/Deploying+applications+with+slc
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-14
      • 2012-10-29
      • 1970-01-01
      • 2011-01-14
      • 2015-07-06
      • 2013-04-15
      相关资源
      最近更新 更多