温馨提示×

Debian Node.js项目怎么部署

小樊
51
2025-10-16 14:47:50
栏目: 编程语言

Debian系统部署Node.js项目完整步骤

1. 更新系统包

首先确保Debian系统包为最新版本,避免依赖冲突:

sudo apt update && sudo apt upgrade -y

2. 安装Node.js与npm

通过NodeSource仓库安装指定版本的Node.js(以16.x为例,可根据需求替换为14.x、18.x等):

# 导入NodeSource库的GPG密钥并添加仓库
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
# 安装Node.js(包含npm)
sudo apt install -y nodejs
# 验证安装
node -v  # 查看Node.js版本
npm -v   # 查看npm版本

3. 准备项目文件

  • 本地创建项目:在本地机器初始化Node.js项目并开发,完成后通过scp或SFTP上传至服务器:
    # 本地操作(示例)
    mkdir my-nodejs-app && cd my-nodejs-app
    npm init -y
    npm install express body-parser  # 安装依赖
    # 创建app.js(示例代码)
    echo "const express = require('express'); const app = express(); const port = 3000; app.get('/', (req, res) => res.send('Hello World')); app.listen(port, () => console.log(\`App running on port \${port}\`));" > app.js
    # 上传至服务器(替换为你的服务器IP和用户名)
    scp -r my-nodejs-app username@your_server_ip:/home/username/
    
  • 服务器端操作:进入项目目录:
    cd /home/username/my-nodejs-app
    

4. 安装项目依赖

在项目目录下运行以下命令,安装package.json中定义的依赖:

npm install

5. 使用PM2管理进程

PM2是Node.js进程管理工具,可实现后台运行、自动重启、日志管理等功能:

# 全局安装PM2
sudo npm install pm2 -g
# 启动应用(--name指定应用名称)
pm2 start app.js --name "my-node-app"
# 设置开机自启动(避免服务器重启后应用停止)
pm2 startup
# 保存当前进程列表(确保重启后恢复)
pm2 save
# 常用命令:查看状态(pm2 status)、查看日志(pm2 logs)、重启应用(pm2 restart my-node-app)

6. 配置Nginx反向代理(可选但推荐)

Nginx可作为反向代理,处理HTTP请求转发、SSL卸载及静态文件服务,提升应用性能与安全性:

# 安装Nginx
sudo apt install nginx -y
# 配置反向代理(编辑默认站点配置)
sudo nano /etc/nginx/sites-available/default

在配置文件中修改server块(替换your_domain_or_ip为你的域名或公网IP):

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;
    }
}

保存后测试Nginx配置并重启:

sudo nginx -t  # 测试配置语法
sudo systemctl reload nginx  # 重启Nginx

7. 配置防火墙

若服务器启用了ufw防火墙,需开放HTTP(80)和HTTPS(443)端口:

sudo ufw allow 'Nginx Full'  # 允许Nginx的全部流量(包括80/443端口)
sudo ufw enable  # 启用防火墙(若未启用)

8. 可选:配置SSL证书(免费版)

使用Let’s Encrypt为站点配置免费SSL证书,实现HTTPS加密:

# 安装Certbot及Nginx插件
sudo apt install certbot python3-certbot-nginx -y
# 获取证书并自动配置Nginx
sudo certbot --nginx -d your_domain.com  # 替换为你的域名
# 按提示完成验证(通常需修改DNS记录或输入邮箱)

证书会自动续期,无需手动操作。

通过以上步骤,你的Node.js项目已在Debian系统上完成部署,可通过http://your_domain_or_ip(或HTTPS)访问。

0