一、安装与环境配置
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash,加载配置后通过nvm install <version>安装指定版本,nvm use <version>切换版本。curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - && sudo apt install -y nodejs。~/.bashrc或~/.zshrc,添加export PATH=$PATH:/usr/local/bin(Node.js默认安装路径),运行source ~/.bashrc使配置生效。验证安装:node -v(显示版本号)、npm -v(确认npm正常)。二、进程管理与高可用性
-i max参数启动多个实例)、日志管理(pm2 logs查看实时日志)及资源监控(pm2 monit)。安装:npm install pm2 -g,启动应用:pm2 start app.js。cluster模块创建多个工作进程(数量=CPU核心数),提升并发处理能力。示例代码:const cluster = require('cluster');
const os = require('os');
if (cluster.isMaster) {
for (let i = 0; i < os.cpus().length; i++) cluster.fork();
} else {
require('./app.js'); // 启动应用
}
或使用PM2的-i max参数自动创建集群。三、性能优化
fs.readFileSync),优先使用fs.promises.readFile、async/await等异步方法,防止事件循环阻塞。fs.createReadStream)和写入(fs.createWriteStream),避免一次性加载到内存导致OOM(内存溢出)。--max-old-space-size参数增加堆内存大小(如node --max-old-space-size=4096 app.js设置为4GB),避免因内存不足导致的进程崩溃。四、安全配置
npm audit定期扫描项目依赖项的安全漏洞,及时修复(npm audit fix);将package-lock.json纳入版本控制,确保依赖版本一致。ulimit -n 65535,允许更多并发连接)、关闭不必要的服务(如FTP、Telnet)、更新系统内核(修复已知安全漏洞)。五、反向代理与负载均衡
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri; # 强制HTTPS
}
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
proxy_pass http://localhost:3000; # 转发到Node.js应用
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;
}
}
重启Nginx:sudo systemctl restart nginx。六、监控与维护
winston或pino等日志库记录应用日志(如请求日志、错误日志),通过PM2的pm2 logs命令实时查看,或将日志发送到ELK(Elasticsearch+Logstash+Kibana)等集中式日志平台,便于后续分析。pm2 monit命令实时查看资源使用情况。rsync或cron定时任务(如每天凌晨3点备份):0 3 * * * rsync -avzh /path/to/data /path/to/backup。