首页主机资讯Node.js在CentOS上的部署策略

Node.js在CentOS上的部署策略

时间2025-11-26 10:29:04发布访客分类主机资讯浏览620
导读:Node.js 在 CentOS 上的部署策略 一、安装与版本管理 使用 NodeSource 仓库安装:适合生产环境快速获得指定版本,命令示例(以 18.x 为例):curl -sL https://rpm.nodesource.com...

Node.js 在 CentOS 上的部署策略

一、安装与版本管理

  • 使用 NodeSource 仓库安装:适合生产环境快速获得指定版本,命令示例(以 18.x 为例):curl -sL https://rpm.nodesource.com/setup_18.x | sudo -E bash - & & sudo yum install -y nodejs,随后用 node -v、npm -v 验证。
  • 使用 NVM(Node Version Manager):适合多项目、多版本并存与快速切换,步骤:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash,source ~/.bashrc 后执行 nvm install --lts 或 nvm install ,并用 nvm alias default 设置默认版本。
  • 使用 EPEL 仓库或二进制包:EPEL 安装命令为 sudo yum install -y epel-release & & sudo yum install -y nodejs npm;二进制包方式下载解压至如 /usr/local/node 后,将 /usr/local/node/bin 加入 PATH。
  • 建议:生产优先 NodeSource 或 NVM;若需离线/内网,选二进制包并维护自有镜像。

二、应用部署与进程管理

  • 代码获取与依赖:在 /var/www/your-app 放置代码(git clone 或 scp/rsync),执行 npm ci --only=production 以可重复、干净地安装依赖(优先使用 package-lock.json)。
  • 进程管理:使用 PM2 托管应用,示例:pm2 start app.js --name “myapp”;常用命令:pm2 status、pm2 logs、pm2 monit、pm2 restart/stop。设置开机自启:pm2 startup 生成 systemd 服务并 pm2 save 持久化进程列表。
  • 运行规范:监听 0.0.0.0 而非 127.0.0.1;设置环境变量(如 NODE_ENV=production、PORT=3000);将日志输出到文件或交由 PM2(pm2 start app.js --name “myapp” --log /var/log/myapp/combined.log)。

三、反向代理与网络配置

  • 使用 Nginx 作为反向代理与静态资源服务:安装 sudo yum install -y nginx;配置示例(/etc/nginx/conf.d/default.conf):
    server { listen 80; server_name your-domain.com; location / { proxy_pass http://127.0.0.1:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection ‘upgrade’; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
    启用服务:sudo systemctl enable --now nginx,变更后 sudo systemctl reload nginx。
  • 防火墙放行:sudo firewall-cmd --permanent --zone=public --add-service=http & & sudo firewall-cmd --permanent --zone=public --add-service=https & & sudo firewall-cmd --reload。
  • 可选:启用 HTTPS(Let’s Encrypt/certbot)与 HTTP/2,提升安全与性能。

四、安全与系统优化

  • 最小权限运行:创建 nodeapp 系统用户,应用与日志目录属主设为 nodeapp,避免使用 root 启动。
  • 依赖与代码安全:npm audit / npm ci;启用 SRI、CSP、安全响应头(如 helmet);将 secrets 放入环境变量或 secret 管理服务,避免硬编码。
  • 资源与网络:按需设置 ulimit -n(文件描述符)、开启 keepalive;Node.js 侧使用 cluster 或多进程充分利用多核;内核网络参数可适度优化(如 net.core.somaxconn、tcp_tw_reuse 等)。

五、持续交付与运维实践

  • 目录与权限:/var/www/your-app(代码)、/var/log/your-app(日志)、/etc/your-app(配置);日志轮转用 logrotate
  • 部署方式:
    • 蓝绿/金丝雀:准备两套发布目录与 upstream,Nginx 权重/切换实现零停机。
    • 滚动升级:多实例下分批重启 pm2 restart “myapp” --instances 。
    • 回滚:git 回退或软链接切换至上一版本目录。
  • 监控与告警:PM2 监控/日志聚合;结合 systemd 与日志收集(如 rsyslog/fluentd)与 APM(如 New Relic/Elastic APM)。
  • 备份与配置管理:定期备份数据库与应用配置;使用 dotenv 管理环境差异,配置中心或 Ansible 管理多机一致性。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Node.js在CentOS上的部署策略
本文地址: https://pptw.com/jishu/756459.html
在CentOS上使用Node.js开发Web应用 CentOS服务器上Node.js的安全性

游客 回复需填写必要信息