宝塔面板快速部署 Node.js + Express 后端,一步到位!

在服务器上部署 Node.js 项目,很多小伙伴可能觉得麻烦,尤其是要手动配置环境、进程管理、反向代理等。但如果你用的是 宝塔面板 ,整个流程就会简单很多!本文将手把手教你如何在 宝塔面板 上部署 Node.js 项目,让你的应用顺利跑起来。

步骤 1:安装 Node.js

首先,我们需要在服务器上安装 Node.jsnpm

  1. 登录宝塔面板,进入 软件商店
  2. 搜索 Node.js ,点击安装,选择最新的 LTS 版本(长期支持版)。
  3. 安装完成后,Node.js 和 npm 就已经配置好了,不需要额外操作。

步骤 2:上传项目到服务器

你可以选择 FTP、SFTP ,或者直接用 宝塔面板的文件管理器 上传代码到服务器。

  • 打开 宝塔面板 → 文件管理 ,找到合适的目录(比如 /www/wwwroot/your-project)。
  • 上传你的项目文件,并解压(如果是压缩包的话)。

步骤 3:安装项目依赖

项目上传完了,接下来要安装依赖。

  1. 打开 终端(SSH 连接或宝塔自带的终端)。

  2. 进入项目目录:

    bash 复制代码
    bash
    复制编辑
    cd /www/wwwroot/your-project
  3. 运行以下命令安装依赖:

    复制代码
    bash
    复制编辑
    npm install

如果项目需要环境变量 ,别忘了在项目目录下创建 .env 文件,并配置相关参数。

步骤 4:配置 Nginx 反向代理

Node.js 服务器默认监听的是某个端口(如 3000),但为了让它能通过域名访问,我们需要用 Nginx 反向代理。

  1. 打开 宝塔面板 → 网站 → 你的网站 → 反向代理

  2. 添加一个反向代理规则,目标地址填:

    arduino 复制代码
    cpp
    复制编辑
    http://127.0.0.1:3000
  3. 保存并应用配置。

如果你用的是 Apache ,可以在 Apache 配置 里添加类似的反向代理规则。

步骤 5:使用 PM2 进程管理

为了让 Node.js 项目稳定运行(并在服务器重启后自动恢复),推荐使用 PM2

  1. 先安装 PM2:

    复制代码
    bash
    复制编辑
    npm install -g pm2
  2. 进入项目目录,使用 PM2 启动项目:

    sql 复制代码
    bash
    复制编辑
    pm2 start app.js --name your-project

(如果你的启动文件不是 app.js,改成 server.jsindex.js 等。)

  1. 让 PM2 开机自启:

    复制代码
    bash
    复制编辑
    pm2 startup
    pm2 save

步骤 6:开放防火墙端口

如果服务器的防火墙有严格限制,你需要手动开放端口。

  • Nginx 反向代理的端口 (一般是 80443)必须开放。
  • 如果你直接访问 Node.js 端口(如 3000),那这个端口也要开放。

宝塔面板 → 安全 里,检查防火墙规则,确保这些端口是允许访问的。

步骤 7:测试和访问

现在,Node.js 项目已经部署好了!你可以在浏览器里测试:

  • 通过域名访问http://your-domain.com
  • 直接访问 IP+端口 (如果没配反向代理):http://your-server-ip:3000

如果一切顺利,你的项目应该可以正常运行了!🎉

相关推荐
爱分享的鱼鱼14 小时前
对比理解 Vue 响应式 API:data(), ref、reactive、computed 与 watch 详解
前端·vue.js
JS_GGbond14 小时前
【性能优化】给Vue应用“瘦身”:让你的网页快如闪电的烹饪秘籍
前端·vue.js
T___T14 小时前
一个定时器,理清 JavaScript 里的 this
前端·javascript·面试
代码小学僧14 小时前
从 Arco Table 迁移到 VTable:VTable使用经验分享
前端·react.js·开源
微笑的曙光14 小时前
Vue3 环境搭建 5 步走(零基础友好)
前端
不知名用户来了14 小时前
基于vue3 封装的antdv/element-Plus 快速生成增删改查页面
前端
ShaneD77114 小时前
Redis 实战:从零手写分布式锁(误删问题与 Lua 脚本优化)
后端
我命由我1234514 小时前
Python Flask 开发问题:ImportError: cannot import name ‘Markup‘ from ‘flask‘
开发语言·后端·python·学习·flask·学习方法·python3.11
無量14 小时前
Java并发编程基础:从线程到锁
后端
明川14 小时前
Android Gradle - ASM + AsmClassVisitorFactory插桩使用
android·前端·gradle