部署前需确保系统包为最新版本,避免依赖冲突:
sudo apt update && sudo apt upgrade -y
Node.js的部署需先安装运行环境,推荐以下两种方式(根据需求选择):
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
sudo apt install -y nodejs npm
验证安装:
node -v # 查看Node.js版本(如v18.x.x)
npm -v # 查看npm版本(如9.x.x)
my-node-app):mkdir ~/my-node-app && cd ~/my-node-app
npm init -y生成package.json文件(包含项目元数据与依赖配置):npm init -y
根据项目需求安装依赖包(以Express框架为例):
npm install express --save # --save参数将依赖写入package.json的dependencies
若需安装开发依赖(如nodemon),使用--save-dev:
npm install nodemon --save-dev
为确保应用在后台持续运行、自动重启及监控状态,推荐使用PM2:
sudo npm install pm2 -g
app.js,执行以下命令启动:pm2 start app.js --name "my-node-app"
pm2 list # 查看运行中的应用列表
pm2 logs # 查看应用日志
pm2 save # 保存当前进程列表(便于系统重启后恢复)
pm2 startup # 设置PM2开机自启动(需根据提示执行后续命令)
Nginx可作为反向代理,处理HTTP请求转发、负载均衡及SSL卸载,提升应用性能与安全性:
sudo apt install -y nginx
sudo nano /etc/nginx/sites-available/my-node-app
添加以下内容(将your_domain_or_ip替换为服务器域名或IP,3000替换为Node.js应用端口):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;
}
}
sudo ln -s /etc/nginx/sites-available/my-node-app /etc/nginx/sites-enabled
sudo nginx -t # 测试配置语法是否正确
sudo systemctl restart nginx
允许HTTP(80)与HTTPS(443)流量通过防火墙(若使用UFW):
sudo ufw allow 'Nginx Full' # 允许Nginx的全部流量(HTTP+HTTPS)
sudo ufw enable # 启用防火墙(若未启用)
为应用启用HTTPS加密,推荐使用Let’s Encrypt免费证书:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your_domain.com -d www.your_domain.com
按提示完成证书申请,Certbot会自动修改Nginx配置以支持HTTPS。pm2 status # 确认应用处于“online”状态
以上流程覆盖了Debian系统上Node.js从环境安装到生产部署的关键步骤,可根据实际需求调整(如切换Node.js版本、添加更多依赖或优化Nginx配置)。