部署

优质
小牛编辑
133浏览
2023-12-01

有些人不喜欢工作被打扰,直到项目足够完美才发布,而有些人则迫不及待的要向大家展示自己的项目。

如果你是第一种人,现在宁愿在本地开发,就可以果断跳过这一章。相反,如果你更愿意花时间去学习如何把 Meteor 应用部署到线上,我们下面为你提供一些方法。

我们将学习用来部署一个 Meteor 应用的几种不同的方法。无论你是在开发 Microscope 或任何其他的 Meteor 应用,在开发过程的任何阶段,可以随意地从它们当中挑选一个。让我们马上开始吧!

引入附录

这是一个附录章节。 不同于其他的书,本书的附录会让我们深入去了解更多关于 Meteor 的知识。

现在如果你更愿意去继续构建 Microscope ,现在可以先忽略这一章,等有空再回来看也没问题。

部署在 Meteor 上

首先最简单的是部署到 Meteor 的子域名上(例如: http://myapp.meteor.com ),这是我们首先要学习的。在项目早期,这对于展示你的应用并快速设置一个测试服务器都很有用。

而部署在 Meteor 上是非常简单的。打开终端,定位到你 Meteor 应用的目录,并输入:

meteor deploy myapp.meteor.com

当然,你要把“myapp”替换成你想要的名字,最好是一个没有被使用的名字。如果名称已经被使用,Meteor 会提示你输入密码。如果发生这样的情况,只需通过 ctrl+c 来取消当前操作,然后用另一个不同的名字再试一次。

如果顺利地部署成功了,几秒钟后你就能够在 http://myapp.meteor.com 上访问到你的应用了。

你可以参考官方文档,了解更多关于如何直接访问你域名下的数据库,或者为你的应用设置一个自定义域名等相关信息。

部署在 Modulus 上

Modulus 是一个部署 Node.js 应用的很好选择。这是为数不多的 PaaS(platform-as-a-service 平台即服务)提供商,并且已经正式支持 Meteor ,已经有不少人在它上面搭建 Meteor 应用了。

你可以通过阅读他们的部署 Meteor 应用指南了解更多关于 Modulus 的信息。

Meteor Up

虽然每天都有新的云端解决方案出来,但是它们通常都有自己的一些问题和限制。目前,把 Meteor 应用部署在自己的服务器上才是最好的方式。然而麻烦的是,部署到自己的服务器并不是那么简单,尤其是如果你注重产品部署上去的质量的话。

Meteor Up (简称 mup )是另一个通过命令行的操作去帮助你解决安装和部署问题。所以,让我们看看如何通过 Meteor Up 部署 Microscope。

在此之前,我们需要一台发布用的服务器。我们建议使用 Digital Ocean(每月最低5美元),或者 AWS(它为小型实例提供免费,如果你只是想试玩下 Meteor Up 已经足够了)。

无论选择哪种服务,你应该要解决这三样东西:你服务器的 IP 地址,登录账号(通常是 root 或者 ubuntu )和登录密码。将它们安全地保存起来,我们很快就会用到。

Meteor Up 的初始化

首先,我们需要通过 npm 安装 Meteor Up:

npm install -g mup

然后我们将创建一个单独的目录,为我们的 Meteor Up 提供一个特定的部署环境。我们使用单独的目录出于两个原因:第一,这可以很好地避免在里面包含任何你的 Git 代码库的隐藏文件,尤其当你是在公共代码库中操作。

第二,通过使用多个单独的目录,我们能够并行地进行多个 Meteor Up 管理和配置。这将会用在实际产品的部署以及分段实例的部署上。

所以我们来创建这个新目录,并使用它来初始化一个新的 Meteor Up 项目:

mkdir ~/microscope-deploy
cd ~/microscope-deploy
mup init

通过 Dropbox 分享

为了确保你和你的团队都使用相同的部署设置,一个很好的方法就是把你的 Meteor Up 配置文件夹放在你的 Dropbox 上,或者任何类似的服务上。

Meteor Up 的配置

当初始化一个新项目的时候,Meteor Up 会为你创建两个文件: mup.jsonsettings.json

mup.json 会保存我们部署的所有相关设置,而 settings.json 会保存应用的所有相关设置(OAuth token、Analytics token,等等)。

下一步就是去配置你的 mup.json 文件。 mup.json 会默认在执行 mup init 的时候生成,而你要做的就是把空白的项目填上:

{
  //server authentication info
  "servers": [{
    "host": "hostname",
    "username": "root",
    "password": "password"
    //or pem file (ssh based authentication)
    //"pem": "~/.ssh/id_rsa"
  }],

  //install MongoDB in the server
  "setupMongo": true,

  //location of app (local directory)
  "app": "/path/to/the/app",

  //configure environmental
  "env": {
    "ROOT_URL": "http://supersite.com"
  }
}

让我们了解一下这些设置。

服务器身份验证

你会注意到 Meteor Up 提供了基于密码和基于私钥(PEM)的身份验证,所以它几乎可以用于任何的云提供商。

重要提示:如果你选择使用基于密码的身份验证,确保你在这之前已经安装了 sshpass使用指南)。

MongoDB 配置

下一步是为你的应用配置 MongoDB 数据库。我们建议使用 Compose 或者其他提供云端 MongoDB 的提供商,因为它们提供专业支持和更好的管理工具。

如果你决定使用 Compose,把 setupMongo 设置为 false ,并添加 MONGO_URL 环境变量到 mup.json 中的 env 模块。如果你决定通过 Meteor Up 访问 MongoDB,只需要设置 setupMongotrue ,Meteor Up 随后会完成剩余的工作。

Meteor 应用路径

因为 Meteor Up 的配置作用在不同的目录,我们需要通过 app 属性去把 Meteor Up 指回到应用。只需要设置完整的本地路径,在位于应用目录里面的时候,你可以使用 pwd 命令去获取它。

环境变量

你可以在 env 模块中指定应用的所有环境变量(比如: ROOT_URLMAIL_URLMONGO_URL 等等)。

设置和部署

在可以部署之前,我们还需要设置服务器为 Meteor 应用托管。Meteor Up 把这个复杂的过程封装在一条简单的命令中!

mup setup

可能需要几分钟,这取决于服务器的性能和网络连接速度。设置成功后,终于可以部署我们的应用了:

mup deploy

这将会打包我们的 Meteor 应用并部署到刚刚设置好的服务器上。

显示日志信息

日志也是非常重要的,通过模仿 tail -f 命令,Meteor Up 提供了非常简单的方法去处理它,输入:

mup logs -f

这一小节概述了 Meteor Up 的用法。要了解更多关于它的信息,我们建议看看 Meteor Up 在 GitHub 上的详细介绍

这三种部署 Meteor 应用的方式应该足够满足大多数的案例了。当然,我们知道一些人会喜欢更进一步地控制和设置他们的 Meteor 服务器。然而这将会是另一个主题,或者另一本书的内容!

最后更新:

类似资料

  • 我们终于准备好向全世界展示我们的应用程序了。是时候要部署。这个过程可能是痛苦的因为有许多琐碎的事情要去做。当涉及到生产环境的搭建以及服务器的配置方案,这是有很多的选择需要做出。在本章中,我们会讨论一些重要的部分以及一些我们可能会用到的选项(关于主机或者服务器的搭建方式等等)。 主机 首先我们需要一台服务器。现在有成千上万的服务器供应商,但是我个人建议的有三家。我不打算在这里介绍如何开始使用它们的细

  • 默认方案 umi@2 默认对新手友好,所以默认不做按需加载处理,umi build 后输出 index.html、umi.js 和 umi.css 三个文件。 不输出 html 文件 某些场景 html 文件交给后端输出,前端构建并不需要输出 html 文件,可配置环境变量 HTML=none 实现。 $ HTML=none umi build 部署 html 到非根目录 经常有同学问这个问题:

  • 3.6 部署 本节介绍如何部署Nginx配置文件。 3.6.1 Nginx配置文件组成方式 我们是这样管理Nginx文件的: 在Nginx服务器上,nginx/conf目录下,建立了一个phoenix-slb目录。该目录下存放着由Camel管理的站点配置文件。 每个站点对应着一个单独的文件夹,文件夹下有一个server.conf,存放着本站点的配置。 假设有两个站点a.liyang.com,b

  • 上面的课程我们已经完成了测试和3个API接口的开发,现在我们来完成部署我们的应用。 首先在项目根目录新建一个docker-compose-prod.yml的文件,将docker-compose.yml文件的内容全部拷贝过来,然后去掉users-service下面的volumes,因为这是我们在开发阶段便于调试,将代码挂载到容器中的,生产环境就需要这样做了,然后就是需要将环境变量更改成生产环境的配置

  • 目前為止,我們所有的工作都是在自己的電腦完成,你也可以在自己的電腦上看到成果。但是,如果我們想要讓其他人隨時瀏覽這個網站,就必須將它部署(deploy)到穩定的伺服器上。 我們選擇 PythonAnywhere 作為範例。它對於 Python 的支援性相當好,免費帳號也足夠經營一個小型網站。 部署準備 為了將你的程式碼上傳到雲端,我們要先將整個專案打包成一個壓縮檔。在 djangogirls 專案

  • 在应用 san build [entry] --remote <remote-name> 时,使用的就是此远程部署解决方案,支持从项目本地将生产环境编译产出直接远程部署到目标开发机。 使用时,需要进行相应的 环境配置 以及 参数配置,下面具体说明如何配置。 环境配置 remote-name 为一组开发机配置项集合的名称,开发配置项需要在 .env.production 文件中进行配置,具体写法方式