Debian系统上Node.js管理指南
在Debian系统上管理Node.js主要涉及版本安装/切换、依赖管理及生产环境优化三大核心环节,以下是具体方法:
NodeSource是Debian系统上常用的第三方Node.js仓库,支持安装最新或指定版本的Node.js(如14.x、16.x、18.x等)。
sudo apt-get remove --purge nodejs npm
sudo apt-get autoremove
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
node -v # 输出类似 v16.x.x
npm -v # 输出对应npm版本
该方法适合需要固定版本的项目,安装后可通过apt升级,但切换版本需重新添加对应仓库。
nvm是命令行工具,允许在同一台机器上安装、切换多个Node.js版本,适合开发者在不同项目中使用不同版本。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
.bashrc、.zshrc):source ~/.bashrc # 或 source ~/.zshrc
nvm ls-remotenvm install 14.17.0nvm use 14.17.0nvm alias default 14.17.0node -vnpm(Node Package Manager)是Node.js的包管理工具,用于安装、更新、移除项目依赖。
package.json文件(记录依赖及项目信息):npm init -y
node_modules,仅当前项目可用):npm install expresssudo npm install -g pm2npm update express
npm uninstall express
npm ci # 严格根据package.json安装依赖,避免版本冲突
建议将package.json和package-lock.json纳入版本控制(如git),确保团队成员使用相同依赖版本。
PM2是Node.js进程管理工具,可实现后台运行、自动重启、日志管理等功能,适合生产环境。
sudo npm install -g pm2
app.js为例):pm2 start app.js --name "my-node-app" # --name指定进程名称
pm2 statuspm2 stop my-node-apppm2 restart my-node-apppm2 logspm2 save
pm2 startup
PM2能有效防止应用因崩溃或服务器重启而停止,提升生产环境可靠性。
Nginx可作为反向代理服务器,处理HTTP请求并将流量转发到Node.js应用,提升安全性(隐藏端口)和性能(负载均衡)。
sudo apt install nginx -y
/etc/nginx/sites-available/my-node-app),添加以下内容:server {
listen 80;
server_name your_domain_or_ip; # 替换为域名或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;
}
}
sudo ln -s /etc/nginx/sites-available/my-node-app /etc/nginx/sites-enabled
sudo nginx -t # 测试配置语法
sudo systemctl restart nginx
配置后,用户通过http://your_domain_or_ip访问应用,无需直接暴露Node.js端口。