侧边栏壁纸
  • 累计撰写 52 篇文章
  • 累计创建 22 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

debian服务器上部署Node.js 项目

镇沛
2024-12-24 / 0 评论 / 0 点赞 / 42 阅读 / 0 字

准备工作

# 1. 构建项目
npm run build   # 这会将 TypeScript 编译为 JavaScript,输出到 dist 目录

# 2. 准备生产环境文件
cp .env dist/   # 复制环境配置文件
cp package.json dist/   # 复制 package.json

服务器配置

# 1. 安装 Node.js 和 npm
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs

# 2. 安装 PM2 用于进程管理
npm install -g pm2

# 3. 创建项目目录
mkdir -p /var/www/your-app
cd /var/www/your-app

部署文件

# 本地打包后的文件传输到服务器
scp -r dist/* user@your-server:/var/www/your-app/

# 在服务器安装依赖
cd /var/www/your-app
npm install --production

使用 PM2 启动应用

# 创建 PM2 配置文件 ecosystem.config.js
# 集群模式
module.exports = {
  apps: [{
    name: "your-app",
    script: "./dist/app.js",
    instances: 2,
    exec_mode: "cluster",
    watch: true,
    env: {
      NODE_ENV: "production",
      PORT: 3000
    }
  }]
}
# 单实例模式
module.exports = {
  apps: [{
    name: "your-app",
    script: "./dist/app.js",
    instances: 1,           // 改为 1 个实例
    exec_mode: "fork",      // 改为 fork 模式
    watch: true,
    env: {
      NODE_ENV: "production",
      PORT: 3000
    }
  }]
}
# 启动应用
pm2 start ecosystem.config.js

配置Nginx反向代理

server {
    listen 80;
    server_name your-domain.com;

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

常用PM2命令

pm2 status          # 查看应用状态
pm2 logs           # 查看日志
pm2 restart all    # 重启所有应用
pm2 stop all      # 停止所有应用
pm2 delete all    # 删除所有应用
pm2 save         # 保存 PM2 进程列表

0

评论区