宝塔面板快速部署 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

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

相关推荐
inxunoffice16 分钟前
批量在多个 PDF 的指定位置插入页,如插入封面、插入尾页
前端·pdf
三木SanMu17 分钟前
LangChain基础系列之LLM接口详解:从原理到实战的全攻略
后端
失业写写八股文19 分钟前
Spring基础:Spring特性与优势
后端·spring
木木黄木木21 分钟前
HTML5 Canvas绘画板项目实战:打造一个功能丰富的在线画板
前端·html·html5
豆芽81923 分钟前
基于Web的交互式智能成绩管理系统设计
前端·python·信息可视化·数据分析·交互·web·数据可视化
不是鱼23 分钟前
XSS 和 CSRF 为什么值得你的关注?
前端·javascript
Asthenia041224 分钟前
Java 排序深度解析:升序、降序与实现方式的抉择
后端
顺遂时光26 分钟前
微信小程序——解构赋值与普通赋值
前端·javascript·vue.js
anyeyongzhou28 分钟前
img标签请求浏览器资源携带请求头
前端·vue.js
Captaincc37 分钟前
腾讯云 EdgeOne Pages「MCP Server」正式发布
前端·腾讯·mcp