如何将本地 Node.js 服务部署到宝塔面板:完整的部署指南
文章简介:
将本地开发的 Node.js 项目部署到线上服务器是开发者常见的工作流程之一。在这篇文章中,我将详细介绍如何将本地的 Node.js 服务通过宝塔面板(BT 面板)上线。宝塔面板是一个强大的服务器管理工具,具有简洁的 UI 和丰富的功能,适合用来管理服务器、部署应用程序和维护网站。
正文:
宝塔面板(BT)提供了方便的 Web 界面,简化了服务器管理和网站运维的流程。将本地 Node.js 服务部署到宝塔服务器,经过以下几个步骤即可轻松实现。
第一步:准备你的本地 Node.js 服务
在将服务部署到服务器之前,首先确保你的本地 Node.js 项目已经准备好,并且可以正常启动。
-
安装项目依赖:
如果还没有安装依赖,首先在项目根目录下执行以下命令:npm install -
本地启动项目:
使用以下命令确保项目可以在本地成功运行:npm start或者:
node app.js确保应用正常启动并没有报错,浏览器中可以正常访问。
-
配置项目端口:
检查你的app.js或server.js文件,确保定义了服务监听的端口,比如:const port = process.env.PORT || 3000; app.listen(port, () => {console.log(`Server is running on port ${port}`); });
第二步:准备宝塔面板服务器
如果你已经在宝塔面板上配置了服务器,可以直接跳到下一步。如果还没有,则需要配置一台服务器并安装宝塔面板。
-
购买服务器:
登录阿里云、腾讯云等云服务商平台,选择合适的服务器配置(如 2vCPU、4G 内存),并购买服务器。 -
安装宝塔面板:
登录到你的服务器后,执行以下命令来安装宝塔面板:CentOS 系统:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.shUbuntu/Debian 系统:
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh执行安装脚本后,系统会提示安装成功,并给出宝塔面板的登录地址、账号和密码。
-
登录宝塔面板:
打开浏览器,访问安装成功时提示的面板地址,使用提供的账号密码登录宝塔。
第三步:安装 Node.js 运行环境
宝塔面板的强大之处在于它支持一键安装各种常用的运行环境。我们需要安装 Node.js 来运行我们的应用。
-
在宝塔面板中安装 Node.js:
- 打开宝塔面板的 软件商店。
- 在左侧栏中找到 运行环境,然后找到 Node.js。
- 选择你需要的 Node.js 版本,点击安装。
-
检查 Node.js 是否安装成功:
安装完成后,打开 终端 或 SSH 工具(如 PuTTY),在命令行中输入以下命令,检查 Node.js 是否已成功安装:node -v如果显示 Node.js 的版本号,则安装成功。
第四步:上传你的 Node.js 项目
接下来,你需要将本地的项目文件上传到宝塔面板的服务器。
-
打包你的项目:
在本地项目目录下执行以下命令来打包项目:zip -r my-node-app.zip . -
上传到服务器:
- 在宝塔面板中,点击左侧的 文件。
- 选择你想要存放项目的目录(通常是
/www目录下),然后点击右上角的 上传 按钮,将my-node-app.zip文件上传到服务器。 - 上传完成后,解压该压缩包,确保所有项目文件上传成功。
第五步:安装项目依赖
-
通过 SSH 登录服务器,进入到你的项目目录:
cd /www/my-node-app -
安装依赖:
执行以下命令,安装项目的依赖库:npm install这一步会自动读取
package.json中的依赖并进行安装。
第六步:配置 PM2 管理 Node.js 服务
为了让你的 Node.js 服务能够持续运行,我们使用 PM2 来管理应用进程。PM2 是一个非常流行的 Node.js 进程管理工具,支持应用的自动重启和监控。
-
安装 PM2:
在服务器终端中,执行以下命令安装 PM2:npm install pm2 -g -
启动你的 Node.js 服务:
使用 PM2 启动 Node.js 应用:pm2 start app.js --name "my-node-app"app.js是你应用的入口文件。--name参数为你的应用命名,方便在多个应用中管理。
-
设置开机自启:
为了确保服务器重启后,Node.js 服务可以自动启动,执行以下命令:pm2 startup pm2 save
第七步:配置 Nginx 反向代理
在宝塔面板中,我们可以通过 Nginx 反向代理将外部请求转发给 Node.js 服务。
-
安装 Nginx:
在 软件商店 中,找到 Nginx,选择安装。 -
配置 Nginx 反向代理:
- 在宝塔面板的左侧,点击 网站,然后点击 添加站点,填写你想绑定的域名和站点信息。
- 添加完成后,点击站点的设置,找到 反向代理 选项。
- 在代理目标填写 Node.js 监听的地址(如
http://127.0.0.1:3000),并启用反向代理。
-
保存配置并重启 Nginx:
配置完成后,保存并重启 Nginx,然后项目就运行成功了。

第八步:测试和优化
-
测试服务:
打开你绑定的域名或服务器的 IP 地址,检查是否可以正常访问你的 Node.js 服务。 -
监控和调试:
使用 PM2 的日志功能来监控服务的状态和调试可能的问题:pm2 logs my-node-app -
SSL 配置(可选):
如果需要配置 HTTPS,可以在宝塔面板的 SSL 选项中,使用 Let’s Encrypt 免费申请证书,并绑定到你的站点。
结语:
通过宝塔面板,你可以轻松将本地的 Node.js 服务部署到线上,并通过 PM2 和 Nginx 实现进程管理和反向代理。整个过程简单高效,即便是没有太多服务器管理经验的开发者,也能快速上手。
希望这篇指南能帮助你顺利将本地 Node.js 服务部署到宝塔面板中!

相关文章:
如何将本地 Node.js 服务部署到宝塔面板:完整的部署指南
文章简介: 将本地开发的 Node.js 项目部署到线上服务器是开发者常见的工作流程之一。在这篇文章中,我将详细介绍如何将本地的 Node.js 服务通过宝塔面板(BT 面板)上线。宝塔面板是一个强大的服务器管理工具,具有简洁的…...
4.3 线性回归的改进-岭回归/4.4分类算法-逻辑回归与二分类/ 4.5 模型保存和加载
4.3.1 带有L2正则化的线性回归-岭回归 岭回归,其实也是一种线性回归,只不过在算法建立回归方程的时候1,加上正则化的限制,从而达到解决过拟合的效果 4.3.1.1 API 4.3.1.2 观察正则化程度的变化,对结果的影响 正则化力…...
Mac 部署Ollama + OpenWebUI完全指南
文章目录 💻 环境说明🛠️ Ollama安装配置1. 安装[Ollama](https://github.com/ollama/ollama)2. 启动Ollama3. 模型存储位置4. 配置 Ollama 🌐 OpenWebUI部署1. 安装Docker2. 部署[OpenWebUI](https://www.openwebui.com/)(可视化…...
工业物联网平台-视频识别视频报警新功能正式上线
前言 视频监控作为中服云工业物联网平台4.0的功能已经上线运行。已为客户服务2年有余,为客户提供多路视频、实时在线监视和控制能力。服务客户实时发现现场、产线、设备出现随机故障、事故等,及时到场处理维修。 视频识别&视频报警新功能当前正式上…...
面试题 17.19. 消失的两个数字
文章目录 1.题目2.思路3.代码 1.题目 面试题 17.19. 消失的两个数字 给定一个数组,包含从 1 到 N 所有的整数,但其中缺了两个数字。你能在 O(N) 时间内只用 O(1) 的空间找到它们吗? 以任意顺序返回这两个数字均可。 示例 1: **输入:** […...
Licode简介及与SRS对比
Licode 是一个开源的 WebRTC 通信框架,专注于多人实时音视频互动(如视频会议),而 SRS 是一个通用的 流媒体服务器,支持直播、低延迟流分发等场景。以下是两者的详细对比和 Licode 的核心解析: 一、Licode 核心解析 1. 定位与设计目标 核心功能:基于 WebRTC 的多人实时音…...
mysql的cpu使用率100%问题排查
背景 线上mysql服务器经常性出现cpu使用率100%的告警, 因此整理一下排查该问题的常规流程。 1. 确认CPU占用来源 检查系统进程 使用 top 或 htop 命令,确认是否是 mysqld 进程导致CPU满载:top -c -p $(pgrep mysqld)2. 实时分析MySQL活动 …...
Debian 安装 Nextcloud 使用 MariaDB 数据库 + Caddy + PHP-FPM
前言 之前通过 docker在ubuntu上安装Nextcloud,但是现在我使用PVE安装Debian虚拟机,不想通过docker安装了。下面开始折腾。 安装过程 步骤 1:更新系统并安装必要的软件 sudo apt update && sudo apt upgrade -y sudo apt install…...
qt6.8安装mysql8.0驱动
qt6.8安装mysql8.0驱动 qt6.8本身是不带mysql驱动。想要在qt里面使用mysql,还是比较麻烦的。需要自己编译驱动 首先下载qt源码,链接Index of /archive/qt/6.8/6.8.1/single 下载mysql对于驱动文件,链接是MySQL :: Download MySQL Connector/C (Archiv…...
π0开源了且推出自回归版π0-FAST——打造机器人动作专用的高效Tokenizer:比扩散π0的训练速度快5倍但效果相当
前言 过去的半个多月 对于大模型 deepseek火爆全球,我对其的解读也写成了整整一个系列 详见《火爆全球的DeepSeek系列模型》,涉及对GRPO、MLA、V3、R1的详尽细致深入的解读 某种意义来讲,deepseek 相当于把大模型的热度 又直接拉起来了——…...
今日AI和商界事件(2025-02-07)
今日AI领域的相关事件包括但不限于以下几个方面: 一、政策与监管 美国众议员推动禁止政府设备使用中国AI应用DeepSeek:美国众议院两名来自两党的议员提议立法,禁止联邦政府设备使用中国人工智能应用DeepSeek,理由是中国政府可能…...
【算法篇】贪心算法
目录 贪心算法 贪心算法实际应用 一,零钱找回问题 二,活动选择问题 三,分数背包问题 将数组和减半的最小操作次数 最大数 贪心算法 贪心算法,是一种在每一步选择中都采取当前状态下的最优策略,期望得到全局最优…...
《金字塔原理》笔记
金字塔原理一书的原理是关于结构化写作的,里面提出一个MECE法则:各个分论点之间要“相互独立、完全穷尽”。 我的总结 写作思路都是总分总。 要凝练最顶部的信息,然后按照三叉树(最多四叉树)一直分下去。 书中优雅的…...
蓝桥杯准备 【入门3】循环结构
素数小算法(埃氏筛&&欧拉筛) 以下四段代码都是求20以内的所有素数 1.0版求素数 #include<iostream> using namespace std;int main() {int n 20;for(int i2;i<n;i){int j0;for(j2;j<i;j)//遍历i{if(i%j0){break;}}if(ij){cout&l…...
MySQL三大日志——binlog、redoLog、undoLog详解
日志是mysql数据库的重要组成部分,记录着数据库运行期间各种状态信息,能帮助我们进行很多容错及分析工作,其中有三大日志与我们这些开发者息息相关,本文将介绍binlog、redoLog、undoLog三种日志: 1. redoLog 1.1 为什么…...
IDEA中Resolving Maven dependencies卡着不动解决方案
一、修改settings.xml Maven配置阿里云仓库主要通过修改Maven的settings.xml文件来实现。以下是具体步骤: 1、找到settings.xml文件: 通常位于Maven安装目录下的conf文件夹中,或者在用户目录下的.m2文件夹中(如果用户自定义了settings.xml的位置)。 2、编辑se…...
组合(力扣77)
从这道题开始,我们正式进入回溯算法的学习。之前在二叉树中只是接触到了一丢丢,而这里我们将使用回溯算法解决很多经典问题。 那么这道题是如何使用回溯算法的呢?在讲回溯之前,先说明一下此题是如何递归的。毕竟回溯递归不分家&a…...
X86中的常用寄存器
通用寄存器16个 RAX, RBX, RCX, RDX, RSI, RDI, RSP, RBP, R8, R9, R10, R11, R12, R13, R14, R15 其中: RAX:调用程序时,用于存储返回值。RCX:在字符串处理指令中,常用做计数器。RSI:在字符串处理指令中…...
SpringAI系列 - 使用LangGPT编写高质量的Prompt
目录 一、LangGPT —— 人人都可编写高质量 Prompt二、快速上手2.1 诗人 三、Role 模板3.1 Role 模板3.2 Role 模板使用步骤3.3 更多例子 四、高级用法4.1 变量4.2 命令4.3 Reminder4.4 条件语句4.5 Json or Yaml 方便程序开发 一、LangGPT —— 人人都可编写高质量 Prompt La…...
git撤销上一次的提交
1、撤销提交 如果需要撤销上一次的提交,只是提交到了本地,可以通过命令: // 撤销最近的提交(保留修改) git reset --soft HEAD~1 这个操作可以保留之前的提交和当前的修改。最近一次的提交到本地的修改的提交会回到…...
springboot+vue导入ruoyi项目的框架
一、介绍 RuoYi-Vue版本,采用了前后端分离的单体架构设计软件环境:JDK、Mysql、Redis、Maven、Node技术选型: Spring Boot、Spring Security、MyBatis、Jwt、Vue3、Element-Plus官方地址: https://gitee.com/y_project/RuoYi-Vue 官方推荐的版本如下&a…...
Conmi的正确答案——Rider中添加icon作为exe的图标
C#版本:.net 8.0 Rider版本:#RD-243.22562.250(非商业使用版) 1、添加图标到解决方案下: 2、打开“App.xaml”配置文件,添加配置: <Applicationx:Class"ComTransmit.App"xmlns&q…...
360手机刷机 360手机解Bootloader 360手机ROOT
360手机刷机 360手机解Bootloader 360手机ROOT 问:360手机已停产,现在和以后,能刷机吗? 答:360手机,是肯定能刷机的 360手机资源下载网站 360手机-360手机刷机RootTwrp 360os.top 360rom.github.io 一、…...
电风扇各国检测认证详细介绍美国FCC+UL欧盟CE+ROHS日本PSE+METI备案+英国UKCA
美国 : FCC认证 :产品进入美洲市场的通行证,需通过FCC SDOC认证。 FCC第15部分B: 该标准适用于非故意辐射设备,如家用电器、电脑设备等。它规定了这些设备在电磁环境中不会产生过多的辐射。 射频标准: FCC第15部分C:该标准适…...
实验3 词法分析(二)
实验3 词法分析(二) [实验目的]: 1 . 熟悉给定的词法分析程序; 2 . 改进词法分析程序。 [实验内容]: 1.尝试多方面改进TEST语言的文法,参考教材附录B词法分析程序TESTscan.c,在此词法分析程序的基础上改进程序&#x…...
VsCode创建VUE项目
1. 首先安装Node.js和npm 通过网盘分享的文件:vsCode和Node(本人电脑Win11安装) 链接: https://pan.baidu.com/s/151gBWTFZh9qIDS9XWMJVUA 提取码: 1234 它们是运行和构建Vue.js应用程序所必需的。 1.1 Node安装,点击下一步即可 …...
【自开发工具介绍】SQLSERVER的ImpDp和ExpDp工具04
SQLSERVER的ImpDp和ExpDp工具演示 1、指定某些表作为导出对象外 (-exclude_table) 验证用:导出的表,导入到新的数据库 2、指定某些表作为导出对象外 (-exclude_table) 支持模糊检索,可以使用星号 以s开头的表作为导出对象外,…...
国内知名Deepseek培训师培训讲师唐兴通老师讲授AI人工智能大模型实践应用
课程名称 《Deepseek人工智能大模型实践应用》 课程目标 全面了解Deepseek人工智能大模型的技术原理、功能特点及应用场景。 熟练掌握Deepseek大模型的提示词工程技巧,能够编写高质量的提示词。 掌握Deepseek大模型在办公、营销等领域的应用方法,提升…...
4.Python字符串和列表:字符串输入、字符串输出、下标和切片、字符串常见函数、列表(list)、列表的循环遍历、列表的增删改查、列表的嵌套、列表的切片
1. Python 字符串 1.1 字符串输入 input() 函数用于从用户获取字符串输入。它总是返回一个字符串类型的值。 # 从用户输入字符串 name input("请输入你的名字:") print(f"你好, {name}")1.2 字符串输出 字符串的输出通常使用 print() 函数…...
【C语言标准库函数】指数与对数函数:exp(), log(), log10()
目录 一、头文件 二、函数简介 2.1. exp(double x) 2.2. log(double x) 2.3. log10(double x) 三、函数实现(概念性) 3.1. exp(double x) 的模拟实现 3.2. log(double x) 和 log10(double x) 的模拟实现 四、注意事项 4.1. exp(double x) 的注…...
