Nodejs服务器部署现在复杂吗?

发布于 1周前 作者 sinazl 来自 nodejs/Nestjs

Nodejs服务器部署现在复杂吗?
能不能像采用打包 app 那样,打一个包放到一台未安装 node 的服务器上运行呢?

这样 node.js 部署也就能像 go 那样轻松了。

36 回复

不复杂 不能


完全没有 node 环境的话, 扔 docker 里?

能啊…有好几个方案都是打包成二进制的

nw.js 和 election ? 这俩是客户端解决方案 服务端目前有二进制打包?

jxcore nexe 这种

学习了 我研究一下

Node.js 解决方案和开发模式,注定无法使用传统的二进制打包方案,有很多人尝试,但是结果都无法满足要求,我自己也尝试过很多种可能的方案,最终的结论就是可靠性很低,成本太大,局限性太多。放弃

业绩推荐部署方式: docker

Python 、 PHP 同理
所以 Docker 大法吼啊。

写个 helloworld 试了一下 nexe 他把 nodejs 源码下载到本地重新编译了一遍 最终生成 2.5G 大的一个 nodejs 依赖文件夹 和一个 30+M 的二进制主文件 根本不实用

我使用 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 压下还能更小…

看来还是 docker 好,开发调试都方便

可以试试 Jenkins+aws ec2+aws cloudformation+puppet+aws code deploy 来实现 code 和运行 instance 的全部自动化。

其实服务器上装个 nodejs 好像挺简单的。。(如果你使用 ubuntu 的话,直接下载二进制文件,解压目录,设置 env 即可

所以打包,你可以把 nodejs 一起打包了~ 然后初始化的时候安装上即可

不复杂,能打包

Docker 一键转移

那为什么不直接 golang

我刚刚弄了个 CentOS 5 ,还不知道成功了没有,可以输出 helloword 了,
感觉有些麻烦:
1 、升级 Python ->2.7
2 、安装 nodejs
http://blog.csdn.net/veizz/article/details/7237185

打包一个 node ,一个带有依赖的 app , over 。

Docker 这东西在一定程度是不错的,不过我不喜欢引入中间层,除非实在没有办法,否则我更希望是原生的,直接的

能,如果你依赖的 npm 模块不需要编译的话甚至可以直接拷贝过去运行

目标服务器属于局域网 docker 也没啥问题吧。。

我用 shipit, 只需要一个命令部署就好了

装 docker ,拉镜像都是问题。

内网放一个 docker registry 然后镜像推到那上面其他机器从那个上面拉就可以。
至于装 docker ,不能做系统的时候就装好么?

真麻烦……

推荐使用 pm2 管理

node 的部署还算可以,加上数据库, nginx 之类的,其实不是很复杂。推荐: http://www.jianshu.com/p/df7f017d88de

Node.js服务器部署的复杂性主要取决于项目的具体需求和服务器环境配置。一般来说,如果遵循标准的部署流程,并使用一些自动化工具和进程管理器,可以大大简化部署过程。

以下是一个简化的Node.js项目部署流程示例:

  1. 服务器准备

    • 选择并购买云服务或物理服务器。
    • 安装操作系统,配置安全组,开放必要的端口(如80和443)。
  2. 环境搭建

    • 使用SSH登录服务器。
    • 安装Node.js和npm:sudo apt update && sudo apt install nodejs npm(以Ubuntu为例)。
    • 安装其他依赖软件,如MongoDB等。
  3. 项目部署

    • 上传项目文件到服务器,可以使用SCP、SFTP或Git。
    • 进入项目目录,安装依赖:npm install
    • 编写或修改启动脚本(如app.js)。
  4. 进程管理

    • 使用PM2等进程管理器来启动和管理Node.js应用:npm install -g pm2pm2 start app.js --name "myNodeApp"
    • 配置PM2开机自启和保存进程列表。
  5. 配置反向代理(可选):

    • 安装Nginx,配置反向代理以提高安全性和性能。
  6. 监控和日志

    • 使用PM2的监控模块或其他日志管理工具来监控应用状态。

通过遵循上述步骤,并使用适当的工具和进程管理器,Node.js服务器的部署可以变得相对简单和高效。

回到顶部