当前位置: 首页 > news >正文

网站式小程序千峰培训

网站式小程序,千峰培训,做公司网站要钱吗,wordpress托管是什么在nodejs这章,我们更详细的介绍了http协议,如http post请求上传数据的报文,以及nodejs原生处理该请求.1.11 HTTP 文件上传的核心协议-CSDN博客 http的原理,就是解析 tcp 传过来的请求报文. 根据报文里的路径,匹配 到响应的方法,执行响应方法,返回响应报文.我们看到本质之后,就不…

在nodejs这章,我们更详细的介绍了http协议,如http post请求上传数据的报文,以及nodejs原生处理该请求.1.11 HTTP 文件上传的核心协议-CSDN博客

http的原理,就是解析 tcp 传过来的请求报文. 根据报文里的路径,匹配 到响应的方法,执行响应方法,返回响应报文.我们看到本质之后,就不会有, 路径 对应 那个方法 的 迷惑.

该篇章完结之前,在介绍一点简单生产环境部署方面的内容.

在生产环境中部署 Node.js 应用需要考虑 性能优化、高可用性、可维护性 和 安全性

一、服务器选型与基础配置

1. 操作系统选择
  • Ubuntu LTS:易用性好,社区支持丰富,适合快速部署。
  • Rocky Linux(推荐)Rocky Linux 由 CentOS 前项目负责人 Gregory Kurtzer 发起,作为 CentOS 的「精神继承者」,Rocky Linux 旨在延续  CentOS 的理念. 虽然Rocky Linux是一个社区驱动的项目,但它提供了许多只有在付费的企业版Linux中才有的特性
  • AlmaLinux:企业级稳定性,适合长期运行的关键业务。
2. 服务器规格建议
  • CPU:根据应用计算复杂度选择,至少 2 核。
  • 内存:至少 4GB(根据应用内存占用调整)。
  • 存储:SSD 硬盘(读写性能对 Node.js 应用至关重要)。

二、Node.js 环境安装

1. 使用 nvm(Node Version Manager)
# 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash# 激活 nvm
source ~/.bashrc# 安装 LTS 版本的 Node.js
nvm install --lts# 验证安装
node -v  # 输出 v18.x.x 或 v20.x.x
2. 配置 npm 镜像(国内环境)
npm config set registry https://registry.npmmirror.com

三、应用部署流程

手动部署(适合小型项目)
# 克隆代码到服务器
git clone <repository-url> /var/www/myapp
cd /var/www/myapp# 安装依赖(生产环境跳过 devDependencies)
npm install --production# 构建应用(如需要)
npm run build# 配置环境变量
cp .env.example .env.production
nano .env.production  # 编辑生产环境配置

四、进程管理(PM2)

PM2 是一个强大的 Node.js 进程管理器,专为生产环境设计,提供 自动重启、负载均衡、日志管理、监控 等核心功能:

1. 核心特性

  • 自动重启:崩溃或异常退出时自动重启应用。
  • 集群模式:基于 CPU 核心数自动扩展应用实例。
  • 负载均衡:通过内置负载均衡器分发流量。
  • 日志聚合:统一收集和管理应用日志。
  • 监控系统:实时查看 CPU、内存使用情况。
  • 零停机部署:无缝更新应用代码。

 2.安装 PM2

npm install -g pm2

3.常用命令:

 

 

 

 

 4.配置 PM2 启动脚本

// ecosystem.config.js
module.exports = {apps: [{name: 'my-app',script: 'src/server.js', // 应用入口文件instances: 'max',        // 根据 CPU 核心数自动调整实例数autorestart: true,       // 崩溃自动重启watch: false,            // 生产环境不建议启用监听max_memory_restart: '1G',// 内存超过 1GB 时重启env: {NODE_ENV: 'production',PORT: 3000},env_production: {NODE_ENV: 'production',PORT: 8080},}]
};
 启动应用
# 启动应用
# pm2 start ecosystem.config.js
pm2 start ecosystem.config.js --env production# 保存当前进程状态,确保服务器重启后自动恢复
pm2 save# 设置开机自启动
pm2 startup

pm2环境变量加载机制

当你使用PM2启动或重启应用程序时,PM2会根据启动命令中的环境参数选择合适的环境变量集,并将其作为进程的环境变量注入到Node.js进程中。具体来说:

  • 如果你使用命令pm2 start ecosystem.config.js启动应用,默认情况下PM2将使用env字段下定义的环境变量。
  • 若要使用特定环境(比如生产环境)的变量,则可以通过--env参数指定,例如:pm2 start ecosystem.config.js --env production。此时,PM2会选择env_production字段下的环境变量并将其传递给你的应用。

在Node.js中访问环境变量

一旦PM2启动了你的应用程序并将环境变量注入其中,你可以像平常一样通过process.env对象访问这些变量。例如:

console.log(`Running in ${process.env.NODE_ENV} environment`);
console.log(`Using API key: ${process.env.API_KEY}`);

配置文件详解

1. 配置文件生成
pm2 ecosystem          # 生成 ecosystem.config.js
2. 配置文件示例
// ecosystem.config.js
module.exports = {apps: [{name: 'api-server',           // 应用名称script: './src/server.js',    // 入口文件instances: 'max',             // 实例数量exec_mode: 'cluster',         // 集群模式autorestart: true,            // 自动重启watch: false,                 // 监听文件变化(生产环境建议关闭)ignore_watch: ['node_modules', 'logs'], // 忽略监听的目录max_memory_restart: '1G',     // 内存超过 1GB 时重启env: {                        // 环境变量NODE_ENV: 'development',PORT: 3000},env_production: {NODE_ENV: 'production',PORT: 8080},log_date_format: 'YYYY-MM-DD HH:mm:ss', // 日志时间格式error_file: './logs/error.log',         // 错误日志路径out_file: './logs/output.log',          // 输出日志路径merge_logs: true,                      // 合并多实例日志}],};

监控与告警

1. 内置监控面板
pm2 monit  # 查看实时监控面板

总结

PM2 是 Node.js 生产环境中不可或缺的工具,通过 自动化管理、集群扩展、监控告警 等功能,显著提升应用的可靠性和可维护性。

常用命令速查表

# 基础操作
pm2 start app.js -i 0           # 集群模式启动
pm2 monit                       # 监控面板
pm2 logs                        # 查看日志
pm2 reload all                  # 零停机重启# 配置管理
pm2 ecosystem                   # 生成配置文件
pm2 start ecosystem.config.js   # 从配置文件启动# 系统管理
pm2 startup                     # 开机自启动
pm2 save                        # 保存当前状态
pm2 update                      # 更新 PM2
http://www.tj-hxxt.cn/news/2548.html

相关文章:

  • 17网站一起做网店的流程站长工具推荐网站
  • 做网站管理员开会怎么演讲怎么免费自己做推广
  • 番禺网站建设企业关键词排名监控
  • 网站开发工程师职业道德seo技术培训江门
  • 网站模板怎么制作做好网络推广
  • 网站开发数据接口如何利用十大经典口碑营销案例
  • 四川省建设工程质量安全网站百度电脑版网页版入口
  • 游戏网站设计论文推广图片大全
  • 如何运用网站模板外贸网站平台都有哪些 免费的
  • 做外掛网站空间东莞网络优化调查公司
  • 可靠的铁岭做网站公司高权重网站出售
  • 做电子商务网站多少钱网络营销模式有哪些
  • 龙华做网站哪家好怎么自己创建网址
  • 易语言wordpress发帖长沙有实力的关键词优化价格
  • html网站制作深圳seo优化排名公司
  • 网站建设兼职挣多少钱站长之家站长工具综合查询
  • 手机网站建设价格seo排名软件价格
  • 广州注册公司核名在哪个网站靖江seo要多少钱
  • 做一个企业网站需要多长时间搜索引擎优化教程
  • asp.net 网站建设二级域名查询网站
  • 百度网站排名优化网站友链
  • 外贸soho建站国内新闻最新消息今天简短
  • 部门门户网站建设的目的磁力兔子
  • 佛山企业网站开发西seo优化排名
  • 赤壁网站设计东莞seo整站优化
  • 用word做旅游网站html做一个简单的网页
  • 网络规划设计师试题百度网站排名关键词整站优化
  • 如何看别人网站用什么做的今日军事新闻头条
  • 辉县市建设局网站佛山seo
  • 建设网站交纳党费河南郑州最近的热搜事件