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

现在 node.js 服务器部署复杂吗?

  •  
  •   loading · 2017-01-08 10:42:17 +08:00 via Android · 7361 次点击
    这是一个创建于 2854 天前的主题,其中的信息可能已经有所发展或是发生改变。
    能不能像采用打包 app 那样,打一个包放到一台未安装 node 的服务器上运行呢?

    这样 node.js 部署也就能像 go 那样轻松了。
    第 1 条附言  ·  2017-01-08 16:55:21 +08:00
    如果目标服务器属于局域网, docker 似乎很麻烦?
    35 条回复    2017-02-20 18:50:20 +08:00
    xjp
        1
    xjp  
       2017-01-08 11:02:05 +08:00 via iPhone
    不复杂 不能
    hxtheone
        2
    hxtheone  
       2017-01-08 11:02:44 +08:00
    完全没有 node 环境的话, 扔 docker 里?
    xream
        3
    xream  
       2017-01-08 11:06:00 +08:00
    @xjp 能啊...有好几个方案都是打包成二进制的
    xjp
        4
    xjp  
       2017-01-08 11:08:22 +08:00 via iPhone
    @xream nw.js 和 election ? 这俩是客户端解决方案 服务端目前有二进制打包?
    xream
        5
    xream  
       2017-01-08 11:14:00 +08:00
    @xjp jxcore nexe 这种
    xjp
        6
    xjp  
       2017-01-08 11:14:42 +08:00 via iPhone
    @xream 学习了 我研究一下
    fuxpro
        7
    fuxpro  
       2017-01-08 11:15:18 +08:00
    Node.js 解决方案和开发模式,注定无法使用传统的二进制打包方案,有很多人尝试,但是结果都无法满足要求,我自己也尝试过很多种可能的方案,最终的结论就是可靠性很低,成本太大,局限性太多。放弃
    largepuma
        8
    largepuma  
       2017-01-08 11:26:42 +08:00 via Android
    业绩推荐部署方式: docker
    smallpath
        9
    smallpath  
       2017-01-08 11:35:27 +08:00
    ...docker
    stackboom
        10
    stackboom  
       2017-01-08 11:51:27 +08:00
    docker +1
    mosliu
        11
    mosliu  
       2017-01-08 11:56:48 +08:00
    docker+1
    bdbai
        12
    bdbai  
       2017-01-08 11:58:20 +08:00 via iPhone
    @fuxpro Python 、 PHP 同理
    所以 Docker 大法吼啊。
    xjp
        13
    xjp  
       2017-01-08 12:04:44 +08:00 via iPhone
    写个 helloworld 试了一下 nexe 他把 nodejs 源码下载到本地重新编译了一遍 最终生成 2.5G 大的一个 nodejs 依赖文件夹 和一个 30+M 的二进制主文件 根本不实用
    weaming
        14
    weaming  
       2017-01-08 12:15:28 +08:00
    @xjp 666
    Srar
        15
    Srar  
       2017-01-08 12:16:20 +08:00
    @xjp 我使用 nexe 默认方式编译 依赖有"async": "^1.5.0","body-parser": "^1.14.1","express": "^4.13.3","express3-handlebars": "^0.5.2","js-sha512": "^0.2.2", "morgan": "^1.6.1", "mysql": "^2.9.0","node-rsa": "^0.2.26","node-uuid": "^1.4.7" 最终出来的大小只有 21M, 如果用 UPX 压下还能更小...

    Warder
        16
    Warder  
       2017-01-08 12:21:17 +08:00 via Android
    看来还是 docker 好,开发调试都方便
    vcfvct
        17
    vcfvct  
       2017-01-08 13:15:16 +08:00 via Android   ❤️ 1
    可以试试 Jenkins+aws ec2+aws cloudformation+puppet+aws code deploy 来实现 code 和运行 instance 的全部自动化。
    16500682
        18
    16500682  
       2017-01-08 13:28:16 +08:00 via iPhone
    docker+++
    dibage
        19
    dibage  
       2017-01-08 13:34:38 +08:00
    其实服务器上装个 nodejs 好像挺简单的。。(如果你使用 ubuntu 的话,直接下载二进制文件,解压目录,设置 env 即可

    所以打包,你可以把 nodejs 一起打包了~ 然后初始化的时候安装上即可
    jiangzhuo
        20
    jiangzhuo  
       2017-01-08 13:49:12 +08:00
    不复杂,能打包
    jinhan13789991
        21
    jinhan13789991  
       2017-01-08 16:01:59 +08:00 via Android
    Docker 一键转移
    h4avone
        22
    h4avone  
       2017-01-08 16:23:59 +08:00
    only0jac
        23
    only0jac  
       2017-01-08 16:34:58 +08:00
    那为什么不直接 golang
    majunbo
        24
    majunbo  
       2017-01-08 16:53:22 +08:00
    我刚刚弄了个 CentOS 5 ,还不知道成功了没有,可以输出 helloword 了,
    感觉有些麻烦:
    1 、升级 Python ->2.7
    2 、安装 nodejs
    http://blog.csdn.net/veizz/article/details/7237185
    binux
        25
    binux  
       2017-01-08 17:03:17 +08:00 via Android
    打包一个 node ,一个带有依赖的 app , over 。
    fuxpro
        26
    fuxpro  
       2017-01-08 17:16:27 +08:00
    @bdbai Docker 这东西在一定程度是不错的,不过我不喜欢引入中间层,除非实在没有办法,否则我更希望是原生的,直接的
    gyteng
        27
    gyteng  
       2017-01-08 19:06:37 +08:00 via Android
    能,如果你依赖的 npm 模块不需要编译的话甚至可以直接拷贝过去运行
    93html
        28
    93html  
       2017-01-09 13:50:14 +08:00
    docker++++
    panlilu
        29
    panlilu  
       2017-01-09 14:03:20 +08:00
    目标服务器属于局域网 docker 也没啥问题吧。。
    xdream86
        30
    xdream86  
       2017-01-09 14:36:56 +08:00
    我用 shipit, 只需要一个命令部署就好了
    loading
        31
    loading  
    OP
       2017-01-09 14:45:28 +08:00 via Android
    @panlilu 装 docker ,拉镜像都是问题。
    panlilu
        32
    panlilu  
       2017-01-09 14:54:33 +08:00
    @loading 内网放一个 docker registry 然后镜像推到那上面其他机器从那个上面拉就可以。
    至于装 docker ,不能做系统的时候就装好么?
    loading
        33
    loading  
    OP
       2017-01-09 14:56:18 +08:00 via Android
    @panlilu 真麻烦……
    einsqing
        34
    einsqing  
       2017-01-17 11:52:09 +08:00
    推荐使用 pm2 管理
    wobuhuicode
        35
    wobuhuicode  
       2017-02-20 18:50:20 +08:00
    node 的部署还算可以,加上数据库, nginx 之类的,其实不是很复杂。推荐: http://www.jianshu.com/p/df7f017d88de
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2160 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 00:32 · PVG 08:32 · LAX 17:32 · JFK 20:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.