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


    一、安装Node到服务器

    1. 创建node文件夹

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

    cd /opt/node
    
    • 1

    2. 下载node并解压

    使用命令下载node
    wget https://nodejs.org/dist/v18.12.0/node-v18.12.0-linux-x64.tar.xz

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

    或者到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
    
    • 1

    也可使用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
    
    • 1

    注意:需要在压缩包所在位置,按照上方操作默认为/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
    
    • 1

    创建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
    
    • 1

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

    node -v
    
    • 1
    npm -v
    
    • 1

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

    npm install yarn -g
    
    • 1

    配置软链接
    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
    
    • 1

    校验yarn
    yarn -v

    yarn -v
    
    • 1

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

    ln -s 源文件 目标文件
    
    • 1

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

    2. 手动配置软链接

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

    vi  /etc/profile
    
    • 1

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

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

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

    source /etc/profile
    
    • 1

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

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

    node -v
    
    • 1
    npm -v
    
    • 1

    手动配置软链接的方式比较通用,后续使用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
    
    • 1
    • 2
    • 3

    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
    
    • 1

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

    pm2 list
    
    • 1

    操作后会显示如下
    在这里插入图片描述

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

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

    pm2 start -n demo npm -- run dev
    
    • 1

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

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

    4. pm2管理应用

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

    pm2 restart app_name
    pm2 reload app_name
    pm2 stop app_name
    pm2 delete app_name
    
    • 1
    • 2
    • 3
    • 4
    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
    
    • 1
    查看日志
    pm2 logs
    
    • 1
    指定行数日志

    例如200行

    pm2 logs --lines 200
    
    • 1

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

  • 相关阅读:
    ESP8266远程控制电子门
    58 练习 1
    超高频RFID技术在物流仓储管理中的应用方案设计
    160.相交链表
    Python正则表达式一点通
    Web3设计风格和APP设计风格
    ArcGIS || ENVI:如何将彩色影像拆分为R、G、B以及H、S、I(B/V)影像?
    026-从零搭建微服务-文件服务(二)
    C++的重大特性之一:继承、菱形继承
    Tomcat配置敏感信息屏蔽
  • 原文地址:https://blog.csdn.net/jason_renyu/article/details/133927034