在Debian系统上管理Node.js项目涵盖环境准备、项目初始化、进程管理、生产环境配置等多个环节,以下是详细步骤:
首先更新系统包列表并升级现有软件,确保系统稳定性:
sudo apt update && sudo apt upgrade -y
Node.js和npm(Node包管理器)是项目运行的基础,推荐通过NodeSource仓库安装特定版本(避免系统自带版本过旧):
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
node -v # 查看Node.js版本
npm -v # 查看npm版本
注:若需管理多个Node.js版本,可使用NVM(Node Version Manager)(参考“版本管理”部分)。
在项目目录中初始化package.json文件(用于管理项目元数据和依赖):
mkdir ~/my-nodejs-app && cd ~/my-nodejs-app
npm init -y # 使用默认配置快速初始化
若需手动配置(如指定入口文件、版本号),可运行npm init并按提示操作。
将项目文件(含package.json)上传至服务器后,安装生产环境依赖:
npm install # 安装dependencies中的依赖
若需安装开发环境依赖(如eslint、jest),添加--save-dev参数:
npm install eslint --save-dev
注:
package.json中的dependencies字段会记录所有必需依赖,便于后续部署时快速恢复。
使用PM2(进程管理器)确保应用在后台持续运行,并在崩溃或服务器重启后自动恢复:
sudo npm install pm2 -g
app.js):pm2 start app.js --name "my-node-app" # 自定义应用名称
pm2 status # 查看应用状态
pm2 logs # 查看实时日志
pm2 restart my-node-app # 重启应用
pm2 stop my-node-app # 停止应用
pm2 startup # 生成启动脚本
pm2 save # 保存当前进程列表
Nginx可作为反向代理,处理HTTP请求转发、负载均衡及SSL终止,提升应用性能与安全性:
sudo apt install nginx -y
sudo nano /etc/nginx/sites-available/default
添加以下内容(将yourdomain.com替换为实际域名/IP,3000替换为应用端口):server {
listen 80;
server_name yourdomain.com;
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/default /etc/nginx/sites-enabled # 启用配置
sudo nginx -t # 测试配置语法
sudo systemctl restart nginx # 重启Nginx
允许HTTP(80)和HTTPS(443)流量通过防火墙(若使用ufw):
sudo ufw allow 'Nginx Full' # 允许Nginx全流量
sudo ufw enable # 启用防火墙
使用Let’s Encrypt免费获取SSL证书,启用HTTPS:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com # 替换为实际域名
按提示完成证书申请,Certbot会自动配置Nginx支持HTTPS。
若需在同一台服务器上管理多个Node.js版本,可使用NVM(Node Version Manager):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc # 加载环境变量
nvm install 16
nvm use 16 # 切换至16.x版本
nvm alias default 16 # 设置默认版本
nvm ls-remote
通过以上步骤,可在Debian系统上高效管理Node.js项目,覆盖从环境搭建到生产部署的全流程。