zoukankan      html  css  js  c++  java
  • Linux_CentOS下搭建Nodejs 生产环境-以及nodejs进程管理器pm2的使用

    nodejs安装:https://www.cnblogs.com/loaderman/p/11596661.html

    nodejs 进程管理器 pm2 的使用

    PM2 是一款非常优秀的 Node 进程管理工具,它有着丰富的特性:能够充分利用多核 CPU 且能够负载均衡、能够帮助应用在崩溃后、指定时间(cluster model)和超出最大内存限制 等情况下实现自动重启。

    PM2 是开源的基于 Nodejs 的进程管理器,包括守护进程,监控,日志的一整套完整的功能。

    PM2 的主要特性:

    1、内建负载均衡(使用 Node cluster 集群模块)
    2、后台运行
    30 秒停机重载,我理解大概意思是维护升级的时候不需要停机. 4、具有 Ubuntu CentOS 的启动脚本 5、停止不稳定的进程(避免无限循环)
    6、控制台检测

    PM2 的常见命令:
    1pm2 的安装

    npm install pm2 -g # 命令行安装 pm2

    2、运行 pm2 的程序并指定 name

    pm2 start app.js --name www_aaa_com
    pm2 start app.js -i 3 --name www_bbb_com 3 启动 3 个进程 (自带负载均衡)

    3、显示所有进程状态

    pm2 list

    4、显示所有进程状态

    pm2 logs

    5、显示一个进程的日志

    的日志 pm2 logs www_aaa_com

    6、关闭重启所有进程

    pm2 stop all# 停止所有进程
    pm2 restart all# 重启所有进程
    pm2 reload all # 0 秒停机重载进程 (用于 NETWORKED 进程)

    7、关闭重启指定进程

    pm2 stop 0 # 停止指定的进程 
    pm2 restart 0 # 重启指定的进程
    pm2 stop www_aaa_com
    pm2 restart www_aaa_com

    8、杀死进程

    m2 delete 0   # 杀死指定的进程
    pm2 delete all   # 杀死全部进程
    pm2 delete www_aaa_com  # 杀死指定名字的进程

    10、显示相应进程/应用的总体信息

    pm2 show www_aaa_com

     测试演示过程说明:

    到home下,创建www_aaa_com 和www_bbb_com 文件夹,将项目代码分别拷贝进去

    用cnpm(gzip 压缩支持) 命令行工具代替默认的 npm:

    npm install -g cnpm --registry=https://registry.npm.taobao.org

    然后cnpm install 安装环境依赖

    www_aaa_com app.js代码:

    //引入 koa模块
    
    var Koa=require('koa');
    
    var router = require('koa-router')();  /*引入是实例化路由** 推荐*/
    
    //实例化
    var app=new Koa();
    
    router.get('/',async (ctx)=>{
    
        console.log('aaaa执行');
        ctx.body="这是www_aaa_com的首页";
    
    })
    
    router.get('/news',async (ctx)=>{
        ctx.body="这是www_aaa_com的新闻列表页面";
    
    })
    
    app.use(router.routes());   /*启动路由*/
    app.use(router.allowedMethods());
    app.listen(3001);

    www_bbb_com 中app.js代码:

    //引入 koa模块
    
    var Koa=require('koa');
    
    var router = require('koa-router')();  /*引入是实例化路由** 推荐*/
    
    //实例化
    var app=new Koa();
    
    router.get('/',async (ctx)=>{
    
        console.log('bbb执行');
        ctx.body="这是www_bbb_com的首页111111111111";
    
    })
    
    router.get('/news',async (ctx)=>{
        ctx.body="这是www_bbb_com的新闻列表页面";
    
    })
    
    app.use(router.routes());   /*启动路由*/
    app.use(router.allowedMethods());
    app.listen(3002);

    关闭防火墙

    systemctl stop firewalld 

    在对应的目录下,分别用pm2启动项目

    pm2 start app.js --name www_aaa_com   
    pm2 start app.js --name www_bbb_com
  • 相关阅读:
    matplotlib 进阶之origin and extent in imshow
    Momentum and NAG
    matplotlib 进阶之Tight Layout guide
    matplotlib 进阶之Constrained Layout Guide
    matplotlib 进阶之Customizing Figure Layouts Using GridSpec and Other Functions
    matplotlb 进阶之Styling with cycler
    matplotlib 进阶之Legend guide
    Django Admin Cookbook-10如何启用对计算字段的过滤
    Django Admin Cookbook-9如何启用对计算字段的排序
    Django Admin Cookbook-8如何在Django admin中优化查询
  • 原文地址:https://www.cnblogs.com/loaderman/p/11654348.html
Copyright © 2011-2022 走看看