V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wwlweihai
V2EX  ›  Node.js

Meteor 项目部署到自有服务器中

  •  3
     
  •   wwlweihai · 2016-09-11 16:01:19 +08:00 · 3012 次点击
    这是一个创建于 2994 天前的主题,其中的信息可能已经有所发展或是发生改变。

    meteor 项目部署

    meteor 项目有多种部署方式,可以选择部署到 meteor 官方推荐的 Galaxy 平台,但由于国内网络的原因,这种方式并不适合当下国情。另外,还有两种部署到自有服务器中的方法。

    ps:本文章重点讲解 mup 的部署方式

    mup

    mup 的部署方式也是当前我所采用的部署方案,其高效的部署过程,使得欲罢不能。但是由于种种原因,导致国内外多数 meteor 开发者无法使用 mup 部署,其原因大概如下:

    1. 网络原因。通过配置国内源解决这个问题。目前,我的方案是, npm 使用淘宝, docker 使用 daocloud 。
    2. 版本原因。通过修改 meteor 项目的版本(1.4 及以上), mup 的版本, node(4.4.7), npm(2.15.8)的版本来解决。
    3. dockerImage 原因。由于 mup 部署工具历史原因,选择一个合适的 dockerImage ,是非常重要的。

    下面将重点讲述 meteor 项目 mup 的部署方法。(以下方法仅限于 meteor 1.4 及 1.4.x 版本)

    1. 安装 mup ,初始化部署文件(见底部)。

    2. 配置文件, mup.js , settings.json

      1. mup.js 如下

        module.exports = {
            servers: {
                //服务器配置
                one: {
                    host: 'xxx.xxx.xxx.xxx',
                    username: 'root',
                    password: 'password'
                }
            },
            meteor: {
                name: 'projectName',
                path: 'projectPath',
                servers: {
                    one: {}
                },
                env: {
                    //占用服务端口
                    PORT: 8007,
                    //cdn 地址
                    CDN_URL:'xxxx',
                    //根域名地址
                    ROOT_URL: 'http://www.ohuoyi.com',
                    //mongodb 数据库地址
                    MONGO_URL: 'xxx'
                },
                //指定 docker image.
                //这个地方是大多数人错误的地方,由于默认的 image 存在问题,所以必须填写如下的地址
        
            dockerImage:"abernix/meteord:base",
                //waitTime,由于国内的原因,这个世界尽量大一些.120-200
                deployCheckWaitTime: 120 //default 10
            }
        };
        
      2. settings.json,如下

        {
            "public": {
                // 根据需要填写
                // 如下是使用 ga 统计包含的 id
                "analyticsSettings": {
                    "Google Analytics": {
                        "trackingId": "xxxx"
                    }
                }
            }
        }
        
    3. 执行相关指令

      1. mup setup,成功执行截图如下

      2. mup deploy,成功执行截图如下

    4. 顺利完成上述操作后,通过 IP:PORT 方式即可访问了,如需加上域名,可选择 nginx 反向代理。如果使用 cdn ,在 nginx 配置中加入 cdn ,否则可能出现可以访问,但无法使用的现象。

    通过上面这种方式,笔者已经成功部署了多个项目,每次部署大概耗时 5 分钟左右。如果你有问题,可以来我的论坛交流。 http://coderapp.ohuoyi.com

    build & deploy

    这种方式的其实已经被上述的方式集成化了,这种方式的原理大致如下,

    1. 本地打包项目部署文件 meteor build
    2. 上传到服务器
    3. 解压部署文件,执行

    由于笔者偷懒,掌握 mup 的部署方式后,就不在折腾了这种方法了。但是这是不!对!的!希望能折腾的同学使用后与我交流。我们交流的地方无疑还是那个论坛。 http://coderapp.ohuoyi.com

    以上

    附件资料

    meteor 官方部署文档

    mup 安装

    3 条回复    2016-09-18 09:48:13 +08:00
    cismous
        1
    cismous  
       2016-09-11 16:46:04 +08:00
    如果使用 pm2 管理 meteor 项目,推荐 pm2-meteor
    wwlweihai
        2
    wwlweihai  
    OP
       2016-09-11 22:27:48 +08:00
    是吗?请问 你有用过吗, 有线上案例吗? 我回头也了解下这个
    cismous
        3
    cismous  
       2016-09-18 09:48:13 +08:00
    @wwlweihai 怎没不 at 我一下?一直在用的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5147 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 09:16 · PVG 17:16 · LAX 01:16 · JFK 04:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.