- 应⽤程序的⽇志管理
- 集群模式: 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端口访问成功