pm2自动化部署nodejs后端 使用nginx部署前端

pm2介绍
  1. 应⽤程序的⽇志管理
  2. 集群模式: Node.js负载平衡和零宕机时间重新加载
  3. 性能监控:可以在终端中监控您的应⽤程序并检查应⽤程序运⾏状况(CPU使⽤率,使⽤的内存等)
pm2特性
  1. PM2(process manager 2)是具有内置负载均衡器的nodejs应⽤程序的⽣产进程管理器。它能使你的程序永久保持活跃状态,⽆需停机即可重新加载它们,简化常⻅的系统管理任务。
  2. 多平台⽀持:适⽤于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自动化部署nodejs后端 使用nginx部署前端

结束。

安装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  重启

在网页测试;

pm2自动化部署nodejs后端 使用nginx部署前端

部署前端项目

安装nginix

  1. yum install -y gcc-c++ 
  2. yum install -y zlib-devel 
  3. yum install -y openssl openssl-devel
  4. yum install -y pcre pcre-devel
  5. wget http://nginx.org/download/nginx-1.16.0.tar.gz 
  6. mkdir nginx
  7. cd nginx-1.16.0 
  8. ./configure --prefix=/usr/local/software/nginx --with-http_ssl_module --withhttp_stub_status_module --with-pcre 
  9. make && make install

启动命令

  1. 启动:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
  2. 查看是否启动:ps -ef | grep nginx 
  3. 关闭:usr/local/nginx/sbin/nginx -s stop
     

项目打build:

创建文件夹:vue.config.js

module.exports = {
    publicPath:'./'
}

命令:npm run build

会多一个dist的目录,访问index.html就可以访问成功

把这个目录下的所有文件 copy在ngix的html目录,既可以通过80端口访问成功

pm2自动化部署nodejs后端 使用nginx部署前端

上一篇:接口管理平台Yapi


下一篇:linux安装node,pm2踩跟总结