1. 环境配置:选择稳定的Node.js版本
在Debian上配置JavaScript(尤其是Node.js)运行环境时,优先通过NodeSource存储库安装最新稳定版本(或LTS版本),避免使用系统默认仓库的老旧版本。例如,安装Node.js 18.x的步骤如下:
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
验证安装:node -v(显示版本号)、npm -v(显示npm版本)。若需管理多版本Node.js,可使用NVM(Node Version Manager),通过nvm install <version>和nvm use <version>灵活切换版本。
2. 依赖与项目初始化:规范管理项目依赖
使用npm init -y快速初始化项目,生成package.json文件(记录项目元数据和依赖)。安装依赖时,优先选择轻量级、维护活跃的库,定期通过npm audit或snyk检查依赖包的安全漏洞,及时修复风险。使用package-lock.json(或yarn.lock)锁定依赖版本,确保团队协作或部署时环境一致。
3. 代码质量:强化静态检查与测试
npm install eslint --save-dev,运行npx eslint --init生成配置文件(如推荐规则或Airbnb风格)。npm install prettier --save-dev,添加.prettierrc文件(如{ "semi": true, "singleQuote": true }),运行npx prettier --write .格式化代码。npm install jest --save-dev,运行npx jest执行测试。npm install typescript --save-dev,运行npx tsc --init生成tsconfig.json配置文件。4. 进程管理:使用PM2保障稳定运行
生产环境中,使用PM2(进程管理器)启动Node.js应用,避免进程因异常退出。安装:sudo npm install -g pm2,启动应用:pm2 start app.js --name "my-app"(app.js为入口文件)。常用命令:pm2 list(查看进程状态)、pm2 logs(查看日志)、pm2 restart my-app(重启应用)。配置PM2开机自启:pm2 startup(生成启动脚本)、pm2 save(保存当前进程列表)。
5. 性能优化:减少资源消耗与提升响应速度
mini-css-extract-plugin),使用CSS Sprites合并图片,降低浏览器请求次数。terser app.js -o app.min.js)。loading="lazy"(HTML)或import()(动态导入),提高首屏加载速度。Cache-Control: max-age=3600),减少重复请求;使用Service Workers实现离线缓存(如Workbox库)。6. 安全加固:防范常见攻击
www-data),通过sudo -u www-data pm2 start app.js启动应用。npm update更新依赖包至最新版本,修复已知安全漏洞;结合npm audit自动检测漏洞并生成修复建议。Content-Security-Policy(防止XSS攻击)、X-Content-Type-Options(防止MIME类型嗅探)。express-rate-limit中间件限制请求频率(如每分钟最多60次),防御DDoS攻击。return 301 https://$host$request_uri;)。7. 监控与维护:实时掌握应用状态
error、info级别),通过journalctl -u pm2查看PM2日志,或使用GoAccess分析Nginx访问日志(实时查看请求数、响应时间)。git commit -m "update")跟踪代码变更,确保故障时快速恢复。8. 部署优化:结合Nginx提升效率
使用Nginx作为反向代理,处理静态文件(如图片、CSS)和负载均衡,减轻Node.js应用的压力。配置步骤:
sudo apt install nginx -y。/etc/nginx/sites-available/default),添加反向代理规则:server {
listen 80;
server_name your_domain_or_ip;
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;
}
location /static/ { # 静态文件目录
alias /var/www/static/;
expires 30d; # 缓存30天
}
}
sudo nginx -t,重启Nginx:sudo systemctl reload nginx。