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

pm2 平常使用

1. pm2 是什么?

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

2.安装
npm install -g pm2
复制代码
3.平常使用

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

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

},nginx

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

若是你的node项目配置文件和以上代码不同

莫急,pm2 也是有办法能够启动的(我的以为这是一个万能的启动的方法):npm

pm2 start npm -- run XXXjson

用她替代: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

解释主要的目录结构:ssh

  • 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复制代码
相关文章
相关标签/搜索