Linux环境Node.js配置最佳实践
小樊
48
2025-09-06 16:52:21
一、安装与版本管理
- 推荐使用NVM:通过
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash安装,可灵活切换Node.js版本,避免权限问题。
- 系统包管理器安装:适用于快速部署,如Ubuntu/Debian用
sudo apt install nodejs npm,CentOS用sudo yum install nodejs npm。
- 版本选择:根据项目需求选择LTS版本,通过
nvm install <版本号>安装。
二、性能优化
- 代码层面:采用异步编程(
async/await)、流(Stream)处理大文件,避免阻塞事件循环。
- 内存管理:及时释放无用对象,使用缓存(如Redis)存储高频数据,通过
--max-old-space-size调整V8内存限制。
- 系统级优化:调整文件描述符限制(
ulimit -n),优化内核参数(如net.core.somaxconn)。
三、进程与集群管理
- PM2进程管理:支持负载均衡、自动重启和日志管理,通过
pm2 start app.js启动应用。
- 集群模块:利用Node.js内置
cluster模块创建多进程,充分利用多核CPU。
四、安全配置
- 依赖管理:定期更新Node.js和npm包,使用
npm audit扫描漏洞,移除不必要的依赖。
- HTTPS与加密:启用HTTPS,使用强密码哈希算法(如bcrypt),实施多因素认证(MFA)。
- 权限控制:避免以root权限运行应用,通过
chown设置文件权限。
五、监控与日志
- 性能监控:使用Prometheus+Grafana监控系统指标,或PM2内置监控功能。
- 日志管理:配置日志级别,使用
logrotate分割日志文件,避免日志堆积。
六、其他最佳实践
- 配置环境变量:在
~/.bashrc或/etc/profile中设置NODE_ENV等变量,通过source命令生效。
- 使用Nginx反向代理:处理静态文件、负载均衡,配置示例:
proxy_pass http://localhost:3000。