平常开发中须要启动一个node项目,须要用npm run …,,若是终端被关掉,程序也就自动中止,有时候几个项目一块儿跑起来,好几个终端开着,我的不太喜欢,有一神器能够解决:pm2。pm2 是一个带有负载均衡功能的Node应用的进程管理器.当你要把你的独立代码利用所有的服务器上的全部CPU,并保证进程永远都活着,0秒的重载, PM2是完美的。它很是适合IaaS结构,但不要把它用于PaaS方案。node
npm install -g pm2
复制代码
因为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
莫急,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)
复制代码
- 购买了服务器、
- 域名还未审核经过
- 一个webpack管理经过npm run dev启动的项目 ###2.服务器配置 在购买了服务器后,会有一个ip地址,一个密码,打开终端,输入以下命令,并回车输入密码
ssh root@`ip地址`
复制代码
而后就链接到了咱们的服务器,进入到根目录能够看到目录结构负载均衡
解释主要的目录结构:ssh
node
:node的安装目录,而且所有配置,关于如何在服务器配置node可百度。root
:root里面主要放的是一个webpack管理经过npm run dev启动的项目etc
:nginx服务器的安装【修改较多的文件是/etc/nginx/nginx.conf
】。
scp -r local-dir root@ip:remote_dir
#在本地终端执行上述命令:
#【local-dir】为本地路径;
#【ip】为你服务器的ip;
#【remote_dir】为你放到远程服务器的地址,咱们这里是 /root
复制代码
这里的配置主要的nginx反向代理以及负载均衡,咱们这里不涉及负载均衡,可是能够看到有负载均衡的添加项
upsteam roots
,里面的server能够配置多个地址。 咱们经过监听80端口,转到8080端口去访问服务。 前提条件是咱们进入到/root/testDemo项目中执行 npm run dev项目的时候,node启动才会跳转成功。学习
在看了一些列文章后,终于找到了启动方法,本文章记录也就是为了下面这行代码
pm2 start npm -- run XXX
#用她替代:npm run dev,就能够写成:pm2 start npm -- run dev,项目启动:
复制代码
后来通过一些配置后,这么启动出现了问题,而后输入下面的命令获得解决:
pm2 delete npm复制代码