温馨提示×

如何部署debian nodejs服务

小樊
46
2026-10-13 11:19:54
栏目: 编程语言

下面给你一份在 Debian 上部署 Node.js 服务的常见做法,从安装到上线,适合生产环境使用。


一、准备 Debian 系统

sudo apt update
sudo apt upgrade -y

建议:

  • Debian 11 / 12
  • 使用非 root 用户(有 sudo 权限)

二、安装 Node.js(推荐用 NodeSource)

1. 安装依赖

sudo apt install -y curl gnupg

2. 添加 NodeSource(以 Node 20 为例)

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -

3. 安装 Node.js

sudo apt install -y nodejs

4. 验证

node -v
npm -v

三、部署 Node.js 项目

1. 上传代码

cd /var/www
sudo mkdir myapp
sudo chown $USER:$USER myapp

然后用 scp / git clone 上传代码。

2. 安装依赖

cd myapp
npm install --production

3. 测试运行

node app.js
# 或
npm start

四、使用 PM2 管理 Node 服务(推荐)

1. 安装 PM2

sudo npm install -g pm2

2. 启动服务

pm2 start app.js --name myapp

3. 常用命令

pm2 list
pm2 logs myapp
pm2 restart myapp
pm2 stop myapp

4. 开机自启

pm2 startup
pm2 save

五、使用 Nginx 反向代理(生产推荐)

1. 安装 Nginx

sudo apt install -y nginx

2. 配置站点

sudo nano /etc/nginx/sites-available/myapp

示例:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        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;
    }
}

3. 启用配置

sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

六、配置 HTTPS(可选但强烈推荐)

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d example.com

七、防火墙(如有)

sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable

八、常见部署结构示例

/var/www/myapp
├── app.js
├── package.json
├── node_modules
Nginx (80/443)
   ↓
PM2 (Node)
   ↓
localhost:3000

九、简单总结

✅ 推荐方案:

  • Debian + NodeSource
  • PM2 守护进程
  • Nginx 反向代理
  • Certbot HTTPS

如果你愿意,可以告诉我:

  • 你的 Node 版本
  • 是否用 Docker
  • 是否用 TypeScript / NestJS / Express
  • 是否需要 WebSocket

我可以直接给你定制部署方案。

0 踩