现在 node.js 服务器部署复杂吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
loading
0.06D
V2EX    Node.js

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

  •  
  •   loading 2017-01-08 10:42:17 +08:00 via Android 8056 次点击
    这是一个创建于 3274 天前的主题,其中的信息可能已经有所发展或是发生改变。
    能不能像采用打包 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  
      &bsp;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 一键转移
    3l5e0Ddo5BX07ghT
        22
    3l5e0Ddo5BX07ghT  
       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     Solana     5173 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 07:43 PVG 15:43 LAX 23:43 JFK 02:43
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86