软录 · 2024年7月13日

pm2startappjs|服务器部署nodejs的几种方法

『壹』 linux如何后台运行node服务

在你的任意目录输入命令: npm install pm2 -g 1.找到全局环境PATH路径 输入命令: echo $PATH 回车后: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 你的路径和我的可能不一样,但没关系,你可以选择任何一个以:隔开的路径做为系统环境路径,我通常会选 /usr/local/bin 2:找到pm2的安装路径 在上面输入 npm install pm2 -g 全局安装时 /usr/sbin/nodejs/bin/pm2 -> /usr/sbin/nodejs/lib/node_moles/pm2/bin/pm2 /usr/sbin/nodejs/bin/pm2 是安装路径(你的可能和我的不一样) 3.好了都找到了, 就重要的一步要开始了,睁大你的双眼。 命令为: ln -s /usr/sbin/nodejs/bin/pm2 /usr/local/bin/ (注意空格) 格式: ln -s 空格 pm2安装路径 空格 系统环境路径 OK,搞定,接下来验证一把… [root@iZmwyb7v60px1zZ ~]# pm2 list 回车… $ pm2 start app.js # 启动app.js应用程序 $ pm2 start app.js –name=”api” # 启动应用程序并命名为 “api” $ pm2 start app.js –watch # 当文件变化时自动重启应用 $ pm2 start script.sh # 启动 bash 脚本 $ pm2 list # 列表 PM2 启动的所有的应用程序 $ pm2 monit # 显示每个应用程序的CPU和内存占用情况 $ pm2 show [app-name] # 显示应用程序的所有信息 $ pm2 logs # 显示所有应用程序的日志 $ pm2 logs [app-name] # 显示指定应用程序的日志 $ pm2 stop all # 停止所有的应用程序 $ pm2 stop 0 # 停止 id为 0的指定应用程序 $ pm2 restart all # 重启所有应用 $ pm2 reload all # 重启 cluster mode下的所有应用 $ pm2 gracefulReload all # Graceful reload all apps in cluster mode $ pm2 delete all # 关闭并删除所有应用 $ pm2 delete 0 # 删除指定应用 id 0 $ pm2 scale api 10 # 把名字叫api的应用扩展到10个实例 $ pm2 reset [app-name] # 重置重启数量 $ pm2 startup # 创建开机自启动命令 $ pm2 save # 保存当前应用列表 $ pm2 resurrect # 重新加载保存的应用列表 $ pm2 update # Save processes, kill PM2 and restore processes $ pm2 generate # Generate a sample json configuration file

『贰』 如何在 Ubuntu 上使用 pm2 和 Nginx 部署 Node.js 应用

pm2 是一个 Node.js 应用的进程管理器,它可以让你的应用程序保持运行,还有一个内建的负载均衡器。它非常简单而且强大,你可以零间断重启或重新加载你的 node 应用,它也允许你为你的 node 应用创建集群。

在这篇博文中,我会向你展示如何安装和配置 pm2 用于这个简单的 'Express' 应用,然后配置 Nginx 作为运行在 pm2 下的 node 应用的反向代理。

前提:

Ubuntu 16.04 – 64bit

Root 权限

第一步 – 安装 Node.js LTS

在这篇指南中,我们会从零开始我们的实验。首先,我们需要在服务器上安装 Node.js。我会使用 Nodejs LTS 6.x 版本,它能从 nodesource 仓库中安装。

从 Ubuntu 仓库安装python-software-properties软件包并添加 “nodesource” Nodejs 仓库。

sudo apt-get install -y python-software-properties

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash –

安装最新版本的 Nodejs LTS:

sudo apt-get install -y nodejs

安装完成后,查看 node 和 npm 版本。

node -v

npm -v

nodejs 在 pm2 下开机自启动

Node 应用在 pm2 中运行并使用 Nginx 作为反向代理。

『叁』 服务器部署nodejs的几种方法

由于自身特性的原因。node程序必须保持开启才能访问网站,而当我们关闭时这些进程都会被停止。有以下3种方法可以避免这个问题。

screen

Screen,虚拟终端管理器。可以在后台管理终端界面,防止SSH断开以后任务停止运行。

安装方法:

sudo apt-get screen(以ubuntu为例)

使用方法:

使用screen -S [任意id]命令进入一个名为id的终端,此时便可以随意执行操作例如执行sudo apt-get upgrade,或者其它消耗时间比较长的工作,像编译内核等等。

按ctrl+a后再按d保存虚拟终端,系统提示deatached即为保存成功接下来可以断开SSH终端,虚拟终端仍会执行。

访问已经创建好的终端screen -ls列出已经创建的正在后台运行的终端screen -r xxx进入终端例如 screen -r terminal1

彻底退出screen -r进入终端后执行exit即可完全退出

PM2

pm2 是一个带有负载均衡功能的Node应用的进程管理器.当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着

安装方法

npm install -g pm2

使用方法

启动应用pm2 start -watch app.js

重启应用pm2 restart app.js

显示进程列表pm2 list

停止某应用pm2 stop app_name|app_id

停止所有应用pm2 stop all

小白方案

个人目前用的是宝塔Linux面板,可以说是把Linux的各种操作都已比较简单的形式展现出来了,不需要什么Linux知识就能掌握宝塔官网了解一下

『肆』 heapUsed正常,但是rss不断涨,这是我自己的问题,还是nodejs的bug

信息太少了呀… pomelo没用过, sorry….不过感觉频繁而大量的内存请求和回收可能造成类似的现象耶….似乎内这个工具容可以比较实时的检测, 而且用起来很简单就是启动命令换一下pm start app.js之后pm2 monit实时监控试试吧

『伍』 如何让nodejs在linux后台运行

加入 主文件是 index.js那么可以用的方法有: 1.用forever 进行管理版npm install -g foreverforever start index.js 2. 用自带的服务权nohub nohup node index.js > myLog.log 2>&1 &