前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【架构师(第四十四篇)】 服务端开发之 pm2 和 nginx 介绍

【架构师(第四十四篇)】 服务端开发之 pm2 和 nginx 介绍

作者头像
一尾流莺
发布2022-12-10 13:52:37
4890
发布2022-12-10 13:52:37
举报

pm2

特点

  • 进程守护 - 稳定
  • 多进程 - 高效
  • 日志记录 - 问题可追溯

指令

  • 启动:pm2 start xxx.js
  • 重启:pm2 restart <id/name>
  • 重载:pm2 reload
  • 列表:pm2 list
  • 日志:pm2 logs <id/name>
  • 停止:pm2 stop <id/name>
  • 删除:pm2 delete <id/name>
  • 监控:pm2 monit

安装

代码语言:javascript
复制
npm i pm2 -g

配置文件

默认配置

代码语言:javascript
复制
// bin\pm2AppConf.js

const os = require('os')

const cpuCoreLength = os.cpus().length // CPU 几核

module.exports = {
  name: 'biz-editor-server', // 服务名称
  script: 'bin/www', // 服务启动入口
  // watch: true, // 无特殊情况,不用实时监听文件,否则可能会导致很多 restart
  ignore_watch: ['node_modules', '__test__', 'logs'], // 监听排除目录
  instances: cpuCoreLength, // 进程数量  本地测试 一个即可
  error_file: './logs/err.log', // 错误日志目录
  out_file: './logs/out.log', // 日志目录
  log_date_format: 'YYYY-MM-DD HH:mm:ss Z', // Z 表示使用当前时区的时间格式
  combine_logs: true, // 多个实例,合并日志
  max_memory_restart: '300M', // 内存占用超过 300M ,则重启
}

开发环境配置

代码语言:javascript
复制
// bin\pm2-prd-dev.config.js

const appConf = require('./pm2AppConf')

// 为了测试方便,pm2 进程设置为 1
appConf.instances = 1

module.exports = {
  apps: [appConf],
}

添加命令,临时改为 NODE_ENV=dev

代码语言:javascript
复制
// package.json

  "scripts": {
    "prd-dev": "cross-env NODE_ENV=dev pm2 start bin/pm2-prd-dev.config.js",
  },

指令演示

启动服务 npm run prd-dev

image.png
image.png

查看列表 pm2 list

image.png
image.png

日志 pm2 logs

image.png
image.png

监控 pm2 monit

image.png
image.png

停止 pm2 stop 0

删除 pm2 delete 0

image.png
image.png

pm2 日志拆分

安装插件

使用 pm2 进行安装

代码语言:javascript
复制
pm2 install pm2-logrotate

安装完以后, 通过 pm2 list 可以查看到 pm2-logrotate 的进程。

image.png
image.png
image.png
image.png

rotateInterval 的设置遵循 crontab 的定时规则。

image.png
image.png

nginx

nginx 介绍

nginx 一直是 web server 的必备神器,以稳定和高性能著称。

  • 静态服务(htmlcssjs 等静态资源访问)
  • 反向代理
  • 负载均衡(课程用不到)
  • Access log

安装 nginx

👉👉 nginx 官方下载

image.png
image.png

下载完后直接解压,然后进入解压目录,打开 cmd,执行 start nginx.exe

image.png
image.png

浏览器访问 http://127.0.0.1/ , 出现如下界面证明启动成功。

image.png
image.png

常用命令

  • 启动:nginx
  • 重启:nginx -s reload
  • 停止:nginx -s stop
  • 测试配置文件:nginx -t
  • 指定配置文件:nginx -c xxx.conf
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-06-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • pm2
    • 特点
      • 指令
        • 安装
          • 配置文件
            • 指令演示
            • pm2 日志拆分
              • 安装插件
              • nginx
                • nginx 介绍
                  • 安装 nginx
                    • 常用命令
                    相关产品与服务
                    负载均衡
                    负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档