likes
comments
collection
share

保姆级阿里云ESC服务器安装nodejs和服务器node服务管理工具PM2安装使用

作者站长头像
站长
· 阅读数 38

一、安装Node到服务器

1. 创建node文件夹

默认 /opt 下边 /opt/node 也可建到其他地方,如/usr/local/node 等 创建后切换到文件夹下 cd /opt/node

cd /opt/node

2. 下载node并解压

使用命令下载node wget nodejs.org/dist/v18.12…

wget https://nodejs.org/dist/v18.12.0/node-v18.12.0-linux-x64.tar.xz

或者到node官网下载tar包到本地然后上传到node所在位置 上传 scp命令为 scp node-v18.12.0-linux-x64.tar.xz root@0.0.0.0:/opt/node

scp node-v18.12.0-linux-x64.tar.xz root@0.0.0.0:/opt/node

也可使用FTP工具手动上传

SCP命令的基本用法 scp [option] /path/to/source/file user@server-ip:/path/to/destination/directory /path/to/source/file – 这是打算复制到远程主机的源文件。 user@server-IP: – 这是远程系统的用户名和 IP 地址。==请注意 IP 地址后面加冒号":"。== /path/to/destination/directory – 这是文件将复制到的远程系统上的目标目录。

scp命令常用的几个选项 -C - 这会在复制过程中压缩文件或目录。 -P - 如果默认 SSH 端口不是 22,则使用此选项指定 SSH 端口。 -r - 此选项递归复制目录及其内容。 -p - 保留文件的访问和修改时间。

3. 解压文件

解压命令: tar -c 创建包, –x 释放包, -v 显示命令过程, –z 代表压缩包, -f 表示文件名 使用: tar xvf node-v18.12.0-linux-x64.tar.xz

tar xvf node-v18.12.0-linux-x64.tar.xz

注意:需要在压缩包所在位置,按照上方操作默认为/opt/node

4. 创建软链接,使node和npm命令全局有效

1. 命令创建软链接(建议采用)

创建npm ln -s /opt/node/node-v18.12.0-linux-x64/bin/npm /usr/local/bin/npm

ln -s /opt/node/node-v18.12.0-linux-x64/bin/npm /usr/local/bin/npm

创建node ln -s /opt/node/node-v18.12.0-linux-x64/bin/node /usr/local/bin/node

ln -s /opt/node/node-v18.12.0-linux-x64/bin/node /usr/local/bin/node

创建完成后校验node和npm node -v npm -v

node -v
npm -v

如需yarn或pnpm可全局安装后,用命令配置软链接 安装yarn(pnpm操作相同) npm install yarn -g

npm install yarn -g

配置软链接 ln -s /opt/node/node-v18.12.0-linux-x64/bin/yarn /usr/local/bin/yarn

ln -s /opt/node/node-v18.12.0-linux-x64/bin/yarn /usr/local/bin/yarn

校验yarn yarn -v

yarn -v

看到这里应该发现了命令的规则,后边安装pnpm或者其他将命令中yarn改为对应的即可 ln -s 源文件 目标文件

ln -s 源文件 目标文件

目标文件一般为 /usr/local/bin 下边 如yarn为 /usr/local/bin/yarn

2. 手动配置软链接

==使用vi/vim工具打开配置文件进行编辑,如果对下方命令比较生疏的情况,建议采用第一种命令方式== 打开配置文件命令

vi  /etc/profile

增加node配置信息(注意空格和标点符号比较容易出错的地方)

# node config
export NODE_HOME="/opt/node/node-v18.12.0-linux-x64"
export PATH="$NODE_HOME/bin:$PATH"

配置完成后保存后执行命令 source /etc/profile

source /etc/profile

执行命令可如果有报错可以百度,也可留言看到后会尽快回复

配置完成后校验npm和node命令 node -v npm -v

node -v
npm -v

手动配置软链接的方式比较通用,后续使用npm全局安装yarn或pnpm也可直接使用

其他方式

安装nvm后使用nvm安装node,这也是一种安装方式,但是服务器中建议采用第一种方式,这一种就不做多阐述了。

二、PM2配置在服务器中关闭窗口能继续正常运行的Node环境

在整理前边的步骤后,感觉还是把这一部分加上,不然就像是有了子弹没有枪,要一直打开着窗口不敢动了。 为了处理Nodejs在服务器中运行后,关闭窗口就断掉的问题,我们需要引入一个工具pm2。

PM2 是一个守护进程管理工具,帮助您管理和守护您的应用程序。它以简单直观的 C​​LI 命令行方式进行工作。

这是官网的描述,也可以到官网文档了解更多,pm2中文文档连接:https://pm2.fenxianglu.cn/docs/startpm2英文文档连接:https://pm2.keymetrics.io/docs/usage/quick-start/

本文简单描述安装以及运行的简单步骤,复杂的或者想深入了解的还是到文档里全一点。

1. 安装pm2

在上边安装node后的基础上,直接采用node命令进行安装 npm install pm2@latest -g

npm install pm2@latest -g
# or
yarn global add pm2

2. 创建pm2软链接

这里跟上边node配置一样,有命令创建和手动创建,如果上边node采用手动创建,这里就不需要配置了直接生效,如果是命令配置的这里需要运行下边的命令 ln -s /opt/node/node-v18.12.0-linux-x64/bin/pm2 /usr/local/bin/pm2

ln -s /opt/node/node-v18.12.0-linux-x64/bin/pm2 /usr/local/bin/pm2

创建完成后运行下边命令校验 pm2 list

pm2 list

操作后会显示如下 保姆级阿里云ESC服务器安装nodejs和服务器node服务管理工具PM2安装使用

3. 用pm2运行npm/yarn/pnpm服务

这个可以直接运行Nextjs、Nuxtjs或默认nodejs等服务 pm2 start -n demo npm -- run dev

pm2 start -n demo npm -- run dev

警告:上面这种方式仅适用到 linux 系统,window 系统无效且报错 windows用pm2运行的方式,这里不做介绍,有用到的同学可以移步到文档中查看 pm2启动-npmyarnpnpm-应用

demo 为自己启动项目的唯一标识,后边操作暂停、删除、重启等操作的name 项目的运行也要在对应项目中进行,比如项目为/opt/test-app就要再其路径下运行(个人操作习惯),暂停、删除等操作则在全局

4. pm2管理应用

上边介绍的为安装和运行,运行pm2要在对应的项目中,但是pm2对应用的管理则在全局,根据自己运行时候所定的唯一标识name进行操作,管理应用的操作如下: pm2restartappname重启appname项目pm2 restart app_name 重启app_name 项目pm2restartappname重启appname项目 pm2 reload app_name 重载app_name 项目 pm2stopappname停止appname项目pm2 stop app_name 停止app_name 项目pm2stopappname停止appname项目 pm2 delete app_name 删除app_name项目

pm2 restart app_name
pm2 reload app_name
pm2 stop app_name
pm2 delete app_name

pm2 restart和pm2 reload 区别

pm2 restart 为重启项目,该命令会停止Node.js应用程序的所有进程,并重新启动它们。 如果你的应用程序正在处理请求,它们将被中断,直到新的进程启动并开始处理请求。这种方式可能会导致一些请求失败或者丢失,但是可以确保所有进程都使用最新的代码运行。 pm2 reload为重载项目,该命令会在不停止Node.js应用程序的情况下重新加载代码。 如果你的应用程序正在处理请求,它将继续处理这些请求,而不会中断服务。pm2 reload命令会重新启动Node.js应用程序的所有进程,并在重新加载代码后将请求路由到新的进程。这种方式可以避免中断服务,但是可能会导致一些请求失败或者丢失。

虽然restart和reload都可以用来作为代码更新操作,但是reload可以做到0秒宕机加载新的代码,restart则是重新启动,生产中经常采用reload进行代码更新的操作。

5. 其他pm2命令

列出应用程序

pm2 list

查看日志

pm2 logs

指定行数日志

例如200行

pm2 logs --lines 200

最后,以上就是pm2常用的操作,基础的node安装和pm2运行项目按照上边的步骤就都没问题了,如果需要什么负载均衡、docker集成、监控等操作的,可以到pm2官方文档中查看,如果本文对您有所帮助欢迎点赞留言,如果有什么疑问也可留言,在看到后会第一时间回复。

转载自:https://juejin.cn/post/7292955856545513523
评论
请登录