pm2介绍
- 应?程序的?志管理
- 集群模式: Node.js负载平衡和零宕机时间重新加载
- 性能监控:可以在终端中监控您的应?程序并检查应?程序运?状况(CPU使?率,使?的内存等)
- PM2(process manager 2)是具有内置负载均衡器的nodejs应?程序的?产进程管理器。它能使你的程序永久保持活跃状态,?需停机即可重新加载它们,简化常?的系统管理任务。
- 多平台?持:适?于Linux(稳定)和macOS(稳定)和Windows(稳定)
pm2安装:npm install pm2 -g
pm2启动项?:npm run pm2?
命令启动服务
pm2 start app.js
pm2 start app.js --name app_name命名进程名称
pm2 start app.js --watch --ignore-watch="node_modules"监听当?件变化时重启项?
停?服务
pm2 stop app_name|id|‘all‘
删除服务
pm2 delete app_name|id|‘all‘
重启服务
pm2 restart app_name|id|‘all‘查看进程信息
0秒停机重加载服务
pm2 reload app_name|id|‘all‘
查看进程状态
pm2 [list|ls|status]
查看进程所有信息
pm2 describe app_name|id
根据cpu数?启动最?进程数?
pm2 start app.js -i 0
启动3个进程
pm2 start app.js -i 3
查看?志
pm2 logs [app-name]
清空所有?志?件
pm2 flush
生成配置文件
?命令:pm2 ecosystem
以下为自动化部署文件内容
module.exports = {
apps : [{
name: ‘app‘,
script: ‘./bin/www‘,
watch: ‘.‘,
autorestart: true,
watch: true,
ignore_watch: [ // 不?监听的?件
"node_modules",
"logs"
],
"error_file": "./logs/app-err.log", // 错误?志?件
"out_file": "./logs/app-out.log",
"log_date_format": "YYYY-MM-DD HH:mm:ss", // 给每??志标记?个时间
max_memory_restart: ‘1G‘,
env: {
NODE_ENV: ‘development‘
},
env_production: {
NODE_ENV: ‘production‘
}
}],
deploy : {
production : {
user : ‘root‘,
host : ‘112.126.63.18‘,
ref : ‘origin/master‘,
repo : ‘git@gitee.com:W_007/blog_server_lj.git‘,
path : ‘/usr/local/project/blog_server‘,
ssh_options: "StrictHostKeyChecking=no",
‘post-deploy‘ : ‘npm install && pm2 reload ecosystem.config.js --env production‘,
"env": {
"NODE_ENV": "production"
}
}
}
};
?
linux安装git安装git:
yum -y install git
配置用户信息
git config --global user.name "lijing"
git config --global user.email "125168746@qq.com"? ??
生成ssh key
ssh-keygen -t rsa -C "125168746@qq.com"
?查看密钥:
cat ~/.ssh/id_rsa.pub
在码云设置这个密钥:
? ? ??
结束。
安装pm2
npm i pm2 -g
ln -s /usr/local/node/bin/pm2 /bin/pm2
在git bash 初始化服务器远程文件夹:
pm2 deploy ecosystem.config.js production setup
部署项目:
pm2 deploy ecosystem.config.js production
连接linux服务器免密连接:
scp ~/.ssh/id_rsa.pub root@127.0.0.1:/root/.ssh/authorized_keys
开放防火墙端口:
firewall-cmd --list-ports //查看已开放端口
firewall-cmd --zone=public --add-port=3000/tcp --permanent 开放3000端口
firewall-cmd --reload 重启
在网页测试;
部署前端项目安装nginix
- yum install -y gcc-c++?
- yum install -y zlib-devel?
- yum install -y openssl openssl-devel
- yum install -y pcre pcre-devel
- wget http://nginx.org/download/nginx-1.16.0.tar.gz?
- mkdir nginx
- cd nginx-1.16.0?
- ./configure --prefix=/usr/local/software/nginx --with-http_ssl_module --withhttp_stub_status_module --with-pcre?
- make && make install
启动命令
- 启动:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
- 查看是否启动:ps -ef | grep nginx?
- 关闭:usr/local/nginx/sbin/nginx -s stop
?
项目打build:
创建文件夹:vue.config.js
module.exports = {
publicPath:‘./‘
}
命令:npm run build
会多一个dist的目录,访问index.html就可以访问成功
把这个目录下的所有文件 copy在ngix的html目录,既可以通过80端口访问成功