温馨提示×

如何在Ubuntu上部署Node.js的实时应用

小樊
43
2025-10-08 04:15:28
栏目: 编程语言

在Ubuntu上部署Node.js的实时应用可以通过以下步骤完成。这里我们假设你已经有一个Node.js应用,并且希望将其部署到Ubuntu服务器上。

1. 准备Ubuntu服务器

首先,确保你有一个运行中的Ubuntu服务器。你可以通过SSH访问它。

2. 更新系统

在开始之前,更新你的系统包列表和已安装的软件包:

sudo apt update
sudo apt upgrade -y

3. 安装Node.js

你可以使用NodeSource或nvm(Node Version Manager)来安装Node.js。这里我们使用NodeSource:

使用NodeSource安装Node.js

  1. 添加NodeSource仓库:

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

    这里我们安装Node.js 14.x版本,你可以根据需要更改版本号。

  2. 安装Node.js:

    sudo apt-get install -y nodejs
    
  3. 验证安装:

    node -v
    npm -v
    

4. 安装PM2

PM2是一个进程管理器,可以帮助你管理和保持Node.js应用的在线状态。

  1. 安装PM2:

    sudo npm install pm2 -g
    
  2. 启动你的Node.js应用:

    pm2 start app.js --name my-app
    

    这里app.js是你的Node.js应用的入口文件,my-app是应用的名称。

  3. 查看应用状态:

    pm2 status
    

5. 配置Nginx作为反向代理

Nginx可以用来处理HTTP请求并将它们转发到你的Node.js应用。

  1. 安装Nginx:

    sudo apt install nginx -y
    
  2. 配置Nginx: 编辑Nginx配置文件:

    sudo nano /etc/nginx/sites-available/my-app
    

    添加以下内容:

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

    your-domain.com替换为你的域名,3000替换为你的Node.js应用监听的端口。

  3. 启用配置: 创建一个符号链接以启用该配置:

    sudo ln -s /etc/nginx/sites-available/my-app /etc/nginx/sites-enabled
    
  4. 测试Nginx配置并重启服务:

    sudo nginx -t
    sudo systemctl restart nginx
    

6. 配置防火墙

确保你的防火墙允许HTTP和HTTPS流量。

  1. 允许HTTP和HTTPS流量:

    sudo ufw allow 'Nginx Full'
    
  2. 重新加载防火墙规则:

    sudo ufw reload
    

7. 启动和监控应用

使用PM2启动你的应用,并设置开机自启动:

  1. 设置PM2开机自启动:

    pm2 startup
    

    按照提示操作。

  2. 保存当前PM2进程列表:

    pm2 save
    

现在,你的Node.js实时应用应该已经在Ubuntu服务器上成功部署并运行了。你可以通过浏览器访问你的域名来查看应用。

0