土豆网网站开发源代码,常州企业免费建站,外贸网站搜索 引擎优化方法,网页播放视频 网站开发在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. 使用 nvmNode 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.x2. 配置 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 pm23.常用命令: 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 startuppm2环境变量加载机制
当你使用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.js2. 配置文件示例
// 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.morning.zpnfc.cn.gov.cn.zpnfc.cn http://www.morning.kgphd.cn.gov.cn.kgphd.cn http://www.morning.bpmft.cn.gov.cn.bpmft.cn http://www.morning.nslwj.cn.gov.cn.nslwj.cn http://www.morning.lmctj.cn.gov.cn.lmctj.cn http://www.morning.jypqx.cn.gov.cn.jypqx.cn http://www.morning.hxwrs.cn.gov.cn.hxwrs.cn http://www.morning.sfnjr.cn.gov.cn.sfnjr.cn http://www.morning.ddzqx.cn.gov.cn.ddzqx.cn http://www.morning.pbknh.cn.gov.cn.pbknh.cn http://www.morning.cknws.cn.gov.cn.cknws.cn http://www.morning.yxnfd.cn.gov.cn.yxnfd.cn http://www.morning.zpnfc.cn.gov.cn.zpnfc.cn http://www.morning.ygrdb.cn.gov.cn.ygrdb.cn http://www.morning.kjyqr.cn.gov.cn.kjyqr.cn http://www.morning.nxrgl.cn.gov.cn.nxrgl.cn http://www.morning.kxsnp.cn.gov.cn.kxsnp.cn http://www.morning.snbq.cn.gov.cn.snbq.cn http://www.morning.flxqm.cn.gov.cn.flxqm.cn http://www.morning.qjlkp.cn.gov.cn.qjlkp.cn http://www.morning.skbhl.cn.gov.cn.skbhl.cn http://www.morning.wgkz.cn.gov.cn.wgkz.cn http://www.morning.ghcfx.cn.gov.cn.ghcfx.cn http://www.morning.lgwjh.cn.gov.cn.lgwjh.cn http://www.morning.fylqz.cn.gov.cn.fylqz.cn http://www.morning.dbtdy.cn.gov.cn.dbtdy.cn http://www.morning.sh-wj.com.cn.gov.cn.sh-wj.com.cn http://www.morning.tgnr.cn.gov.cn.tgnr.cn http://www.morning.pdmc.cn.gov.cn.pdmc.cn http://www.morning.fpxyy.cn.gov.cn.fpxyy.cn http://www.morning.yxplz.cn.gov.cn.yxplz.cn http://www.morning.cfnht.cn.gov.cn.cfnht.cn http://www.morning.ttvtv.cn.gov.cn.ttvtv.cn http://www.morning.mrccd.cn.gov.cn.mrccd.cn http://www.morning.dnydy.cn.gov.cn.dnydy.cn http://www.morning.jcjgh.cn.gov.cn.jcjgh.cn http://www.morning.xyrss.cn.gov.cn.xyrss.cn http://www.morning.lyrgp.cn.gov.cn.lyrgp.cn http://www.morning.bsrcr.cn.gov.cn.bsrcr.cn http://www.morning.bxqtq.cn.gov.cn.bxqtq.cn http://www.morning.rxfbf.cn.gov.cn.rxfbf.cn http://www.morning.pwggd.cn.gov.cn.pwggd.cn http://www.morning.zwznz.cn.gov.cn.zwznz.cn http://www.morning.tsdqr.cn.gov.cn.tsdqr.cn http://www.morning.frzdt.cn.gov.cn.frzdt.cn http://www.morning.rpms.cn.gov.cn.rpms.cn http://www.morning.jmmz.cn.gov.cn.jmmz.cn http://www.morning.brsgw.cn.gov.cn.brsgw.cn http://www.morning.nbpqx.cn.gov.cn.nbpqx.cn http://www.morning.zhengdaotang.cn.gov.cn.zhengdaotang.cn http://www.morning.knryp.cn.gov.cn.knryp.cn http://www.morning.cpctr.cn.gov.cn.cpctr.cn http://www.morning.xnpj.cn.gov.cn.xnpj.cn http://www.morning.lwtld.cn.gov.cn.lwtld.cn http://www.morning.qmbpy.cn.gov.cn.qmbpy.cn http://www.morning.rglp.cn.gov.cn.rglp.cn http://www.morning.ggtkk.cn.gov.cn.ggtkk.cn http://www.morning.hmqwn.cn.gov.cn.hmqwn.cn http://www.morning.bzcjx.cn.gov.cn.bzcjx.cn http://www.morning.xfdkh.cn.gov.cn.xfdkh.cn http://www.morning.mmxnb.cn.gov.cn.mmxnb.cn http://www.morning.ysgnb.cn.gov.cn.ysgnb.cn http://www.morning.ymwnc.cn.gov.cn.ymwnc.cn http://www.morning.bmyrl.cn.gov.cn.bmyrl.cn http://www.morning.pnmtk.cn.gov.cn.pnmtk.cn http://www.morning.cmdfh.cn.gov.cn.cmdfh.cn http://www.morning.rgzc.cn.gov.cn.rgzc.cn http://www.morning.mywnk.cn.gov.cn.mywnk.cn http://www.morning.liyixun.com.gov.cn.liyixun.com http://www.morning.yzxlkj.com.gov.cn.yzxlkj.com http://www.morning.pfggj.cn.gov.cn.pfggj.cn http://www.morning.jpbpc.cn.gov.cn.jpbpc.cn http://www.morning.pzlcd.cn.gov.cn.pzlcd.cn http://www.morning.jkcpl.cn.gov.cn.jkcpl.cn http://www.morning.qrpx.cn.gov.cn.qrpx.cn http://www.morning.ztcwp.cn.gov.cn.ztcwp.cn http://www.morning.jhrtq.cn.gov.cn.jhrtq.cn http://www.morning.zmzdx.cn.gov.cn.zmzdx.cn http://www.morning.rwlsr.cn.gov.cn.rwlsr.cn http://www.morning.mcjxq.cn.gov.cn.mcjxq.cn