zoukankan      html  css  js  c++  java
  • pm2通过配置文件部署nodejs代码到服务器

    一、pm2文档地址:

      http://pm2.keymetrics.io/

    二、在本地项目下新建ecosystem.config.js文件,并且推送到远端(记得node_modules这个文件夹也得推送,在.gitignore里面删除):

    module.exports = {
      apps: [{
        name: "blogserver",
        script: "./code/server/index.js",
        env: {
          "NODE_ENV": "production"
        },
        env_production: {
            "NODE_ENV": "production"
        }
      }],
      deploy: {
        production: {
          user: "root",
          host: ["47.94.208.76"],
          port: "8290",
          // SSH options with no command-line flag, see 'man ssh'
          // can be either a single string or an array of strings
          ssh_options: "StrictHostKeyChecking=no",
          // GIT remote/branch
          ref: "origin/master",
          // GIT remote
          repo: "git@gitee.com:tian_zz/blog.git",
          // path in the server
    path: "/www/my-blog/blogserver",
            "post-deploy": "npm install --registry=https://registry.npm.taobao.org && pm2 startOrRestart ecosystem.config.js --env production",
          env: {
            "NODE_ENV": "production"
          }
        },
      }
    }

    三、在服务器端根目录新建文件夹/www/my-blog/

      mkdir /www

      cd /www

      mkdir my-blog

      cd my-blog

    四、在本地运行pm2命令,通过配置文件连接服务器,并且通知服务器拉取代码:

      1、本地 pm2 deploy ecosystem.config.js production setup

      2、服务器端会看到多出的文件夹:    

    五、在本地运行pm2:

      pm2 deploy ecosystem.config.js production

     六、在服务器端可以看到pm2运行的进程:

       pm2 list  

      发现报错,打印下日志:pm2 logs blogserver  

      没有找到模块,进入服务器/www/my-blog/blogserver/source目录:npm install 安装包,再回到本地重新部署一下 pm2 deploy ecosystem.config.js production,回到服务器:部署成功。

    七、在阿里云后台添加域名记录,需要时间生效:  

    八、如果本地后端是在3000端口下,在防火墙允许3000端口访问:

      firewall-cmd --zone=public --add-port=3000/tcp --permanent

      firewall-cmd --permanent --list-port

      firewall-cmd --reload

    九、配置nginx代理,将3000端口转发到服务器的80端口

      cd /etc/nginx/conf.d

    upstream locusy {
            server 127.0.0.1:3000;
    }
    
    server {
            listen 80;
            server_name www.locusy.top;
    
            location / {
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
                    proxy_set_header Host $http_host;
                    proxy_set_header X-Nginx-Proxy true;
    
                    proxy_pass http://locusy;
                    proxy_redirect off;        }
    }

     重启nginx:nginx -s reload

  • 相关阅读:
    java通过commons-fileupload实现多张图片的上传(jsp页面)
    java通过commons-fileupload实现多张图片的上传(jsp页面)
    java通过commons-fileupload实现多张图片的上传(servlet)
    java通过commons-fileupload实现多张图片的上传(servlet)
    java通过commons-fileupload实现多张图片的上传(servlet)
    myeclipse 2016 ci3破解教程(含软件下载)
    myeclipse 2016 ci3破解教程(含软件下载)
    sql server 2012远程链接的方法及步骤
    sql server 2012远程链接的方法及步骤
    sql server 2012远程链接的方法及步骤
  • 原文地址:https://www.cnblogs.com/angelatian/p/10155670.html
Copyright © 2011-2022 走看看