pm2学习以及上线项目的个人总结

2,413 阅读4分钟

pm2 日常使用

1. pm2 是什么?

日常开发中需要启动一个node项目,需要用npm run …,,如果终端被关掉,程序也就自动停止,有时候几个项目一起跑起来,好几个终端开着,个人不太喜欢,有一神器可以解决:pm2。pm2 是一个带有负载均衡功能的Node应用的进程管理器.当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的。它非常适合IaaS结构,但不要把它用于PaaS方案。

2.安装
npm install -g pm2
3.日常使用

由于node的百花齐放,启动一个网站的办法,也会有很多种。这里先以:npm run dev为例: 首先查看项目的package.json文件(我的本地):

"scripts": {
"dev": "node build/dev-server.js --env=local",
"start": "node build/dev-server.js --env=local",
"build": "node build/build.js --env=publish",
"build-local": "node build/build.js"

},

npm run dev 实际就是运行node脚本文件:dev-server.js, 可以用pm2启动:pm2 start build/dev-server.js,可以给这个进程取一个自己记得能理解的名字:pm2 start build/dev-server.js --name XXX,(XXX是你定义的名字)

如果你的node项目配置文件和以上代码不一样

莫急,pm2 也是有办法可以启动的(个人觉得这是一个万能的启动的方法):

pm2 start npm -- run XXX

用她替代:npm run dev,就可以写成:pm2 start npm -- run dev,项目启动! 虽然项目启动了,但是名字并不是我想要的(我需要个自己能记得住的名字,并且是一个项目一个专属name),这时候可以用: pm2 start npm --watch --name XXX -- run start

#pm2的项目启动大概就这些了,日常还有些常用指令,如:
#查看所用已启动项目:
pm2 list
 #重启:
pm2 restart XXX
#停止:
pm2 stop XXX
#删除
pm2 delete XXX
#查看某个进程/应用具体情况
pm2 describe  Travel
#查看进程/应用的资源消耗情况
pm2 monit
#查看所有日志(某个进程)
pm2 logs  (Travel)

注:以下不适用于学习交流,只是为了记录在本次pm2配置node启动的时候遇到的一些问题以及项目部署上线的一个大题模糊流程。

1.在项目上线前

  • 购买了服务器、
  • 域名还未审核通过
  • 一个webpack管理通过npm run dev启动的项目 ###2.服务器配置 在购买了服务器后,会有一个ip地址,一个密码,打开终端,输入如下命令,并回车输入密码
ssh root@`ip地址`

然后就连接到了我们的服务器,进入到根目录可以看到目录结构

1.png

解释主要的目录结构:

  • node:node的安装目录,并且全部配置,关于如何在服务器配置node可百度。
  • root:root里面主要放的是一个webpack管理通过npm run dev启动的项目
  • etc:nginx服务器的安装【修改较多的文件是/etc/nginx/nginx.conf】。
关于如何将本地项目复制到root下的小操作:
scp -r local-dir root@ip:remote_dir
#在本地终端执行上述命令:
#【local-dir】为本地路径;
#【ip】为你服务器的ip; 
#【remote_dir】为你放到远程服务器的地址,我们这里是 /root 
nginx.conf的配置(vi nginx.conf,内容如下图)

2.png 我们的主要配置放在了nginx/conf.d/*.conf, 内容如下图: 3.png

这里的配置主要的nginx反向代理以及负载均衡,我们这里不涉及负载均衡,但是可以看到有负载均衡的添加项 upsteam roots,里面的server可以配置多个地址。 我们通过监听80端口,转到8080端口去访问服务。 前提条件是我们进入到/root/testDemo项目中执行 npm run dev项目的时候,node启动才会跳转成功。


然后用pm2,安装等略。

在看了一些列文章后,终于找到了启动方法,本文章记录也就是为了下面这行代码

pm2 start npm -- run XXX
#用她替代:npm run dev,就可以写成:pm2 start npm -- run dev,项目启动:

后来经过一些配置后,这么启动出现了问题,然后输入下面的命令得到解决:

pm2 delete npm


更多内容,可以查看我的博客 blog.liugezhou.online