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部署前端

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

上一篇:你不知道的Web 安全


下一篇:vue-webpack-starter开始小demo