PM2介绍
PM2是Node应用进程管理器。可以利用它来简化很多node应用管理的繁琐任务。如:性能监控、自动重启、负载均衡等。因为在工作中遇到服务器重启后,需要一个一个去重新启动每个服务,这样不仅繁琐、效率低,而且容易遗忘开启一些服务。
PM2的主要特性
- 内容负载均衡(使用 Node cluster 集群模块)
- 后台运行
- 0秒停机重载
- 具有Ubuntu和CenteOS的启动脚本
- 停止不稳定的进程(避免无线循环)
- 控制台检测
- 提供HTTP API
- 远程控制和实时的接口API(Nodejs模块,允许和PM2进程管理器交互)
示例
创建一个node服务端:
npm init -y
// 第一个js文件
const express = require('express')
const app = express()
app.get('/index', (req, res) => {
res.send({
code: 200,
msg: '请求成功!',
})
})
app.listen(9999, () => {
console.log('9999已运行')
})
// 第二个
const express = require('express')
const app = express()
app.get('/index2', (req, res) => {
res.send({
code: 200,
msg: '请求成功!',
})
})
app.listen(8888, () => {
console.log('8888已运行')
})
......
node index[n].js
你会发现,我们每次启动一个node服务就得新开一个终端,而且每次都要在终端内执行node index[n].js
命令,显得非常繁琐。
安装PM2
npm install -g pm2
pm2 -v
使用pm2启动node服务
pm2 start index[n].js
使用PM2我们不再需要开多个终端来运行多个node服务,而且可以清晰明了的看见有多少个以及具体是哪个node服务在运行中。
字段 | 说明 |
---|---|
name | 这个node服务运行的哪个文件 |
status | 这个node服务的运行状态,是否正在运行中。 |
常用命令
- 查看运行日志:
pm2 log
- 查看进程列表:
pm2 list
- 停止某个服务:
pm2 stop |
停掉服务之后,我们就无法进行访问了。
- 重启服务:
pm2 restart |
重启之后我们又可以进行访问了:
- 删除进程
pm2 delete |
- 改变文件内容自动重启服务
pm2 start .js --watch
输入这个命令,当你对所监听的服务的文件内容修改,pm2会自动帮你重新启动。
- 为服务分配线程
pm2 start .js --watch -i max|number
分配多少个线程这个取决于你的电脑配置。max表示分配最大线程。
认识服务器
我们可以购买:阿里云、腾讯云、百度云等等。
买完服务器之后一定记得先重置一下服务器密码。
-
服务器信息
- ip地址:分为公网ip和内网ip,公网ip对外,内网ip对内,一般我们通过公网ip去访问我们的服务器。
- 域名:配域名和dns解析,让域名解析到服务器的公网ip地址上面,然后我们就可以通过域名机进行访问服务器。
- 镜像信息:服务器的系统镜像,比如:CentOS(linux服务器)、Ubuntu(linux服务器)、windows服务器。
- DDos攻击状态:DDos是一种攻击手段,通常用于将网站挤爆。
-
防火墙:
- HTTP:TCP协议,默认端口80
- HTTPS:TCP协议,默认端口443
- SSH:TCP协议,默认端口22,用于连接服务器