温馨提示×

Ubuntu系统Node.js项目如何部署

小樊
58
2025-06-06 19:44:57
栏目: 编程语言

在Ubuntu系统上部署Node.js项目可以通过多种方式进行,以下是详细的步骤指南:

使用Docker部署Node.js项目

  1. 环境准备
  • 安装Docker:确保你已经在机器上安装了Docker。你可以从Docker官网下载并安装适合你操作系统的Docker版本。
  1. 创建Node.js应用
  • 创建项目目录:
    mkdir my-node-app
    cd my-node-app
    
  • 初始化Node.js项目:
    npm init -y
    
  • 安装必要的依赖(例如,Express框架):
    npm install express
    
  • 编写应用代码:创建一个app.js文件,并添加以下简单的Node.js代码:
    const express = require('express');
    const app = express();
    const port = 3000;
    app.get('/', (req, res) => {
      res.send('Hello, Docker!');
    });
    app.listen(port, () => {
      console.log(`App listening at http://localhost:${port}`);
    });
    
  1. 创建Dockerfile
  • 在项目根目录下创建一个名为Dockerfile的文件,并添加以下内容:
    # 使用官方的Node.js运行时作为基础镜像
    FROM node:14
    # 创建应用目录
    WORKDIR /usr/src/app
    # 安装应用依赖
    COPY package*.json ./
    RUN npm install
    # 复制应用代码
    COPY . .
    # 对外暴露端口
    EXPOSE 3000
    # 启动应用
    CMD ["node", "app.js"]
    
  1. 构建Docker镜像
  • 在项目目录中运行以下命令来构建Docker镜像:
    docker build -t my-node-app .
    
  1. 运行Docker容器
  • 构建完成后,运行以下命令来启动Docker容器:
    docker run -p 3000:3000 my-node-app
    

使用PM2和Nginx部署Node.js项目

  1. 安装Node.js和npm
  • 更新系统软件包:
    sudo apt update
    sudo apt upgrade
    
  • 安装Node.js和npm:
    sudo apt install nodejs npm
    
  • 验证安装:
    node -v
    npm -v
    
  1. 创建Node.js应用程序
  • 创建项目目录:
    mkdir my-node-app
    cd my-node-app
    
  • 初始化项目:
    npm init -y
    
  • 安装项目依赖:
    npm install express
    
  • 创建服务器文件(例如server.js):
    const express = require('express');
    const app = express();
    const port = 3000;
    app.get('/', (req, res) => {
      res.send('Hello World!');
    });
    app.listen(port, () => {
      console.log(`Server running at http://localhost:${port}`);
    });
    
  1. 使用PM2管理Node.js进程
  • 安装PM2:
    sudo npm install -g pm2
    
  • 启动Node.js应用:
    pm2 start server.js
    
  • 设置PM2开机自启动:
    pm2 startup
    
  • 查看应用状态:
    pm2 status
    
  1. 配置Nginx反向代理
  • 安装Nginx:
    sudo apt install nginx
    
  • 配置Nginx:
    sudo nano /etc/nginx/sites-available/default
    
    在配置文件中添加以下内容:
    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;
      }
    }
    
  • 重启Nginx:
    sudo systemctl restart nginx
    
  1. 配置防火墙(可选):
  • 允许HTTP(80)和HTTPS(443)流量:
    sudo ufw allow 'Nginx Full'
    

通过以上步骤,你可以在Ubuntu上成功部署你的Node.js项目。根据你的具体需求,可能还需要进行其他配置和优化。

0