一、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

pm2通过配置文件部署nodejs代码到服务器的更多相关文章

  1. 将nodejs代码部署到阿里云服务器

    概述 最近在做一个小项目,其中用nodejs做了个数据转发的接口,之后需要将这部分代码部署到服务器上面,并使用Nginx做反向代理.期间使用搜索引擎大量查阅了其他同鞋的经验,不过写的大多很笼统,因此踩 ...

  2. PM2来部署nodejs服务器永久开启

    pm2 日常使用   1. pm2 是什么? 日常开发中需要启动一个node项目,需要用npm run …,,如果终端被关掉,程序也就自动停止,有时候几个项目一起跑起来,好几个终端开着,个人不太喜欢, ...

  3. 使用nssm在windows服务器上部署nodejs

    Linux上,可以轻松的使用forever或者pm2来部署nodejs应用.但是在windows下就麻烦了,pm2明确的说支持Linux & MacOS,forever在windows下貌似问 ...

  4. linux服务器部署nodejs项目

    一.安装nodejs 1.去官网下载和自己系统匹配的文件: 英文网址:https://nodejs.org/en/download/ 中文网址:http://nodejs.cn/download/ 通 ...

  5. PM2 部署 nodejs 项目

    在网上找到pm2.目前似乎最常见的线上部署nodejs项目的有forever,pm2这两种.使用场合: forever管理多个站点,每个站点访问量不大,不需要监控. pm2 网站访问量比较大,需要完整 ...

  6. nginx+ssl+pm2 部署 nodejs 服务

    nginx+pm2 部署 nodejs 服务 最近在 centos 上部署 nodejs 服务,记下来步骤: 注意都是使用 root 用户. 下载 nvm: curl -o- https://raw. ...

  7. linux部署html代码到linux服务器,并进行域名解析

    本博客主要是说一下,如何将本地写好的html代码部署到linux服务器,并进行解析.下一篇博客将写一下,如何将html代码部署到阿里云服务器,并进行域名解析,以及在部署过程中遇到的问题和解决方法. 1 ...

  8. NodeJS代码组织与部署

    使用NodeJS编写程序前,为了有个良好的开端,首先需要准备好代码的目录结构和部署方式,就如同修房子要先搭脚手架.本章将介绍与之相关的各种知识. 一.模块路径解析规则 我们已经知道,require函数 ...

  9. NPM 使用介绍(包管理工具,解决NodeJS代码部署上的很多问题)

    引用地址:http://www.runoob.com/nodejs/nodejs-npm.html NPM 使用介绍 NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问 ...

随机推荐

  1. LeetCode算法题-Subdomain Visit Count(Java实现)

    这是悦乐书的第320次更新,第341篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第189题(顺位题号是811).像"discuss.leetcode.com& ...

  2. ASP.NET Core 实现带认证功能的Web代理服务器

    引言 最近在公司开发了一个项目,项目部署架构图如下: 思路 如图中文本所述,公司大数据集群不允许直接访问外网,需要一个网关服务器代理请求,本处服务器A就是边缘代理服务器的作用. 通常技术人员最快捷的思 ...

  3. 零基础如何学Python爬虫技术?

    在作者学习的众多编程技能中,爬虫技能无疑是最让作者着迷的.与自己闭关造轮子不同,爬虫的感觉是与别人博弈,一个在不停的构建 反爬虫 规则,一个在不停的破译规则. 如何入门爬虫?零基础如何学爬虫技术?那前 ...

  4. BootStrap:轮播插件

    前述 利用 BootStrap 实现图片轮播,包括 基本轮播.带标题的轮播.设置轮播速度的轮播.控制前后的轮播 实例 基本轮播 代码 1.引入bootstrap和jQuery文件 <!-- jQ ...

  5. WAF开放规则定义权:专家策略+用户自定义策略=Web安全

    在第一期“漫说安全”栏目中,我们用四格漫画的形式介绍了基于深度学习的阿里云WAF到底智能在哪里,能帮客户解决什么问题. 在今天的这期栏目里,我们依然通过漫画这种通俗易懂的方式,与大家分享阿里云WAF的 ...

  6. <转载>Android性能优化之HashMap,ArrayMap和SparseArray

    本篇博客来自于转载,打开原文地址已经失效,在此就不贴出原文地址了,如原作者看到请私信我可用地址,保护原创,人人有责.   Android开发者都知道Lint在我们使用HashMap的时候会给出警告—— ...

  7. nginx + lua 限制ip地址访问

    实验环境:docker + openresty 我限制的5秒钟内允许访问两次效果图: default.conf  代码如下: lua_shared_dict my_limit_count_store ...

  8. 使用Ninject的一般步骤

    以下为DI控制反转个人理解烦请各位大牛指教~ 编写程序时我们应当遵循抵耦合高内聚的原则(各个功能模块互不依赖). 我们可以利用面向对象里面接口的特性来进行DI控制反转,让功能模块全部依赖接口,而不依赖 ...

  9. SharePoint布局页创建(实战)

    分享人:广州华软 极简 一. 前言 SharePoint有母版页及布局页,母版页控制页面头部.底部,而布局页则控制页面中间内容区域.通过布局页,可以快速修改页面内容区域. SharePoint的页面布 ...

  10. windows2008无人值守安装域控制器

    转自:https://blog.csdn.net/techviewer/article/details/26485017  unattend.txt文件: ; DCPROMO unattend fil ...