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

一、安装Node到服务器

1. 创建node文件夹

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

bash 复制代码
cd /opt/node

2. 下载node并解压

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

bash 复制代码
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 [email protected]:/opt/node

bash 复制代码
scp node-v18.12.0-linux-x64.tar.xz [email protected]:/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

bash 复制代码
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

bash 复制代码
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

bash 复制代码
ln -s /opt/node/node-v18.12.0-linux-x64/bin/node /usr/local/bin/node

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

bash 复制代码
node -v
bash 复制代码
npm -v

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

bash 复制代码
npm install yarn -g

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

bash 复制代码
ln -s /opt/node/node-v18.12.0-linux-x64/bin/yarn /usr/local/bin/yarn

校验yarn yarn -v

bash 复制代码
yarn -v

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

bash 复制代码
ln -s 源文件 目标文件

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

2. 手动配置软链接

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

bash 复制代码
vi  /etc/profile

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

text 复制代码
# node config
export NODE_HOME="/opt/node/node-v18.12.0-linux-x64"
export PATH="$NODE_HOME/bin:$PATH"

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

bash 复制代码
source /etc/profile

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

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

bash 复制代码
node -v
bash 复制代码
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

bash 复制代码
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

bash 复制代码
ln -s /opt/node/node-v18.12.0-linux-x64/bin/pm2 /usr/local/bin/pm2

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

bash 复制代码
pm2 list

操作后会显示如下

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

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

bash 复制代码
pm2 start -n demo npm -- run dev

警告:上面这种方式仅适用到 linux 系统,window 系统无效且报错 windows用pm2运行的方式,这里不做介绍,有用到的同学可以移步到文档中查看 pm2启动-npmyarnpnpm-应用
demo 为自己启动项目的唯一标识,后边操作暂停、删除、重启等操作的name 项目的运行也要在对应项目中进行,比如项目为/opt/test-app就要再其路径下运行(个人操作习惯),暂停、删除等操作则在全局

4. pm2管理应用

上边介绍的为安装和运行,运行pm2要在对应的项目中,但是pm2对应用的管理则在全局,根据自己运行时候所定的唯一标识name进行操作,管理应用的操作如下: <math xmlns="http://www.w3.org/1998/Math/MathML"> p m 2 r e s t a r t a p p n a m e 重启 a p p n a m e 项目 pm2 restart app_name 重启app_name 项目 </math>pm2restartappname重启appname项目 pm2 reload app_name 重载app_name 项目 <math xmlns="http://www.w3.org/1998/Math/MathML"> p m 2 s t o p a p p n a m e 停止 a p p n a m e 项目 pm2 stop app_name 停止app_name 项目 </math>pm2stopappname停止appname项目 pm2 delete app_name 删除app_name项目

bash 复制代码
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命令

列出应用程序

bash 复制代码
pm2 list

查看日志

bash 复制代码
pm2 logs

指定行数日志

例如200行

bash 复制代码
pm2 logs --lines 200

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

相关推荐
还不如ctrC+V13 小时前
VScode在 Markdown 编辑器中预览
node.js·json
小小书童安东尼17 小时前
node实现自动生成vue页面,更新router
node.js
斯~内克1 天前
FreeMarker语法深度解析与Node.js集成实践指南
node.js
薛定谔的猫-菜鸟程序员1 天前
用Node.js施展文档比对魔法:轻松实现Word文档差异比较小工具,实现Word差异高亮标注(附完整实战代码)
node.js·word·diff算法·word文档差异比较工具
代码小学僧1 天前
团队协作必备!pnpm 版本管理与 corepack 使用指南
前端·node.js·团队管理
小妖6661 天前
用 Nodemon 解决 npm run serve 频繁重启服务
前端·npm·node.js
欧先生^_^1 天前
Node.js 简介
node.js
斯~内克2 天前
深入解析Node.js洋葱模型:原理、优势与实战陷阱
node.js
2301_799404912 天前
如何修改npm的全局安装路径?
前端·npm·node.js
(❁´◡双辞`❁)*✲゚*2 天前
node入门和npm
前端·npm·node.js