前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版

pm2用法之ecosystem部署nodejs项目

首页2018-02-22 17:12:08Back-End
Node部署

# 一、配置部署脚本文件

部署参考 http://blog.poetries.top/2018/11/18/react-ssr-next-deploy/

在项目根目录添加pm2的部署脚本文件 ecosystem.json

{
    "apps": [
        "name": "movie", //对应Nginx上的配置
        "script": "app.js", //入口文件
        "env": {
            "COMON_VARIABLE": "true"
        },
        "env_production": {
            "NODE_ENV": "production"
        }
    ],
    "deploy": {
        "production": {
            "user": "poetries", //Nginx服务器上的username
            "host": ["120.120.14.21"], // 服务器地址
            "port": "3922",
            "ref": "origin/master", //从指定的分支拉取代码
            "repo": "git@github.com:poetries/poetries.github.io.git",
            "path": "/www/movie/production",//发布到服务器指定的目录下
            "ssh_options": "StrictHostKeyChecking=no",
            //构建在发布
            "post-deploy": "npm install --registry=https://registry.npm.taobao.org && grunt build && pm2 startOrRestart ecosystem.json --env production",
            "env": {
                "NODE_ENV": "production"
            }
        }
    }
}
@前端进阶之旅: 代码已经复制到剪贴板

# 二、配置Nginx的server

在nginx安装目录下的vhost中新建一个xx-3000.conf的配置文件

upstream movie { // website项目的目录名称
    server 127.0.0.1:3000; // 服务器上的本地启动入口
}

// 配置server
server {
    listen 80;
    server_name movie.poetries.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://movie; // 对应上面的目录
        proxy_redirect off;
    }
    
    // 处理静态资源
    location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|pdf|txt) {
        root /www/movie/public; //静态资源路径
    }
}
@前端进阶之旅: 代码已经复制到剪贴板

# 三、开启防火墙

Ubuntu的设置

  • 打开 sudo vi /etc/iptables.up.rules
  • 生效 sudo iptables-restore < /etc/iptables.up.rules
# movie
-A INPUT -s 127.0.0.1 -p tcp --destination-port 3001 -m state ESTABLISHED -j ACCEPT

-A OUTPUT -s 127.0.0.1 -p tcp --destination-port 3001 -m state ESTABLISHED -j ACCEPT
@前端进阶之旅: 代码已经复制到剪贴板

# 四、部署命令

  • pm2 deploy ecosystem.json production setup 初始化
  • pm2 deploy ecosystem.json production 部署
fe
  • 一、配置部署脚本文件
  • 二、配置Nginx的server
  • 三、开启防火墙
  • 四、部署命令

← 持续集成 Travis CI梳理Immutable常用API 从fromJS到merge的完整清单 →