我是靠谱客的博主 温暖红牛,最近开发中收集的这篇文章主要介绍Linux系统中使和PM2管理多个Node应用程序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1. 搭建Node生产环境

1.1. 下载二进制Node程序包;

cd /mnt/

wget https://nodejs.org/dist/v14.17.0/node-v14.17.0-linux-x64.tar.xz

如果提示未找到wget这个命令,则需要安装该插件。

yum install -y wget

当然,也可以去Node的官网下载好二进制的包上传到服务器上对应的文件夹里去。

1.2. 解压二进制的程序包;

首先解压 xz 包。

cd /mnt/

xz -d node-v14.17.0-linux-x64.tar.xz

然后解压 tar 包。

tar xvf node-v14.17.0-linux-x64.tar

1.3. 复制解压的程序包;

为了区分运行程序与安装包文件,需要把解压后的二进制包放到另外一个文件夹中,为此,我们需要首先在指定的目录新建一个文件夹来存放该运行程序。

cd /usr/local/

mkdir node

将解压后的运行程序复制到node这个文件夹里面。

cd /mnt/

cp -rf node-v14.17.0-linux-x64/* /usr/local/node/

复制完成以后,进放node这个文件夹,执行bin目录下的node,即可看到node的版本。

cd /usr/local/node/

cd bin/

./node -v

1.4. 配置环境变量;

为了能在全局访问node程序,需要在配置文件中添加环境变量。

1.  编辑profile配置文件;

vi /etc/profile

2. 把光标定位到文件内容最下面,按 i 键进入编辑模式,添加如下代环境变量代码;

export NODE_HOME=/usr/local/node/bin
export PATH=$NODE_HOME:$PATH

3. 保存修改;

esc键退出编辑模式,输入:wq保存退出,执行以下命令让配置的环境变量生效。

cd /

source etc/profile

完成以上操作后,可以在全局任意一个目录执行node应用程序看是否完装成功。

node -v 

npm -v

2. 进程管理程序PM2

PM2 是一款非常优秀的 Node 进程管理工具,它有着丰富的特性:能够充分利用多核 CPU 且能够负载均衡、能够帮助应用在崩溃后、指定时间(cluster model)和超出最大内存限制等情况下实现自动重启。

PM2 是开源的基于 Node 的进程管理器,包括守护进程,监控,日志的一整套完整的功能。

2.1. 安装PM2;

npm install -g pm2

如果用npm安装比较慢,可以先注册cnpm,然后用cnpm安装。

npm install cnpm -g --registry=https://registry.npm.taobao.org

2.2. 显示所有的进程;

pm2 list

2.3. 启动某个应用进程;

要启动某个应用进程,需要先进入到该程序中,以下以www.baidu.com这个应用网站为例。

cd /home/www_root/www_baidu_com/

用pm2启动该应用程序,需要注意的是,由于node.js应用程序启动的都是app.js文件,多个应用程序同时启动时,为了便于区分,启动时需要指定一个别名,别名通常就是网站的域名。

pm2 start app.js --name www_baidu_com

执行以上命令后,就启动了www.baidu.com这个应用程序的服务了,在浏览器中就可以访问这个域名了,如果有多个网站放在一个服务器下面,还可以用这个命令启动其它的应用程序,这样也就达到了在一个服务器下同时启动多个网站的目的。

由于pm2内建了负载均衡,即只有一个服务器时,也可以对一个服务开启多个进程。

pm2 start app.js -i 3 --name www_baidu_com

执行以上命令即对www_baidu_com开启了3个进程,3个进程会轮流进行访问分摊压力。 

2.4. 查看调试的打印输出;

pm2 logs

如果你的服务器上有多个网站应用程序,上面这个命令在输出时不会区分是哪个网站应用程序输出的,如果想查看指定网站应用程序的输出,可以用pm2 list这个命令查看启动程序的idname,然后启动时指定id或是name后就可以。

# 按id输出某个进程的日志
pm2 logs 0

# 按name输出某个进程的日志
pm2 logs www_baidu_com

2.5. 关闭进程;

# 停止所有进程
pm2 stop all

# 按id停止某个进程
pm2 stop 0

# 按name停止某个进程
pm2 stop www_baidu_com

2.6. 重启进程;

# 重启所有进程
pm2 restart all

# 按id重启某个进程
pm2 restart 0

# 按name重启某个进程
pm2 restart www_baidu_com

2.7. 杀死进程;

# 杀死全部进程
pm2 delete all 

# 按id杀死指定的进程
pm2 delete 0 

# 按name杀死指定的进程
pm2 delete www_baidu_com 

2.8. 重载进程;

# 重载全部进程
pm2 reload all 

# 按id重载指定的进程
pm2 reload 0 

# 按name重载指定的进程
pm2 reload www_baidu_com 

2.9. 查看指定进程的总体信息;

pm2 show www_baidu_com

3. 防火墙配置

在用pm2管理进程的时候,会涉及到一些防火墙的配置,主要有以下几种:

3.1. 查看防火墙所有打开的端口;

firewall-cmd --zone=public --list-ports

3.2. 添加一个打开的端口;

firewall-cmd --zone=public --add-port=80/tcp --permanent

3.3. 移除一个打开的端口;

firewall-cmd --zone= public --remove-port=3306/tcp --permanent

3.4. 重新载入,使配置生效;

firewall-cmd --reload

最后

以上就是温暖红牛为你收集整理的Linux系统中使和PM2管理多个Node应用程序的全部内容,希望文章能够帮你解决Linux系统中使和PM2管理多个Node应用程序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部