文章简介:
将本地开发的 Node.js 项目部署到线上服务器是开发者常见的工作流程之一。在这篇文章中,我将详细介绍如何将本地的 Node.js 服务通过宝塔面板(BT 面板)上线。宝塔面板是一个强大的服务器管理工具,具有简洁的 UI 和丰富的功能,适合用来管理服务器、部署应用程序和维护网站。
正文:
宝塔面板(BT)提供了方便的 Web 界面,简化了服务器管理和网站运维的流程。将本地 Node.js 服务部署到宝塔服务器,经过以下几个步骤即可轻松实现。
第一步:准备你的本地 Node.js 服务
在将服务部署到服务器之前,首先确保你的本地 Node.js 项目已经准备好,并且可以正常启动。
-
安装项目依赖 :
如果还没有安装依赖,首先在项目根目录下执行以下命令:
bashnpm install
-
本地启动项目 :
使用以下命令确保项目可以在本地成功运行:
bashnpm start
或者:
bashnode app.js
确保应用正常启动并没有报错,浏览器中可以正常访问。
-
配置项目端口 :
检查你的
app.js
或server.js
文件,确保定义了服务监听的端口,比如:javascriptconst port = process.env.PORT || 3000; app.listen(port, () => { console.log(`Server is running on port ${port}`); });
第二步:准备宝塔面板服务器
如果你已经在宝塔面板上配置了服务器,可以直接跳到下一步。如果还没有,则需要配置一台服务器并安装宝塔面板。
-
购买服务器 :
登录阿里云、腾讯云等云服务商平台,选择合适的服务器配置(如 2vCPU、4G 内存),并购买服务器。
-
安装宝塔面板 :
登录到你的服务器后,执行以下命令来安装宝塔面板:
CentOS 系统:
bashyum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
Ubuntu/Debian 系统:
bashwget -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 是否已成功安装:
bashnode -v
如果显示 Node.js 的版本号,则安装成功。
第四步:上传你的 Node.js 项目
接下来,你需要将本地的项目文件上传到宝塔面板的服务器。
-
打包你的项目 :
在本地项目目录下执行以下命令来打包项目:
bashzip -r my-node-app.zip .
-
上传到服务器:
- 在宝塔面板中,点击左侧的 文件。
- 选择你想要存放项目的目录(通常是
/www
目录下),然后点击右上角的 上传 按钮,将my-node-app.zip
文件上传到服务器。 - 上传完成后,解压该压缩包,确保所有项目文件上传成功。
第五步:安装项目依赖
-
通过 SSH 登录服务器,进入到你的项目目录:
bashcd /www/my-node-app
-
安装依赖 :
执行以下命令,安装项目的依赖库:
bashnpm install
这一步会自动读取
package.json
中的依赖并进行安装。
第六步:配置 PM2 管理 Node.js 服务
为了让你的 Node.js 服务能够持续运行,我们使用 PM2 来管理应用进程。PM2 是一个非常流行的 Node.js 进程管理工具,支持应用的自动重启和监控。
-
安装 PM2 :
在服务器终端中,执行以下命令安装 PM2:
bashnpm install pm2 -g
-
启动你的 Node.js 服务 :
使用 PM2 启动 Node.js 应用:
bashpm2 start app.js --name "my-node-app"
app.js
是你应用的入口文件。--name
参数为你的应用命名,方便在多个应用中管理。
-
设置开机自启 :
为了确保服务器重启后,Node.js 服务可以自动启动,执行以下命令:
bashpm2 startup pm2 save
第七步:配置 Nginx 反向代理
在宝塔面板中,我们可以通过 Nginx 反向代理将外部请求转发给 Node.js 服务。
-
安装 Nginx :
在 软件商店 中,找到 Nginx,选择安装。
-
配置 Nginx 反向代理:
- 在宝塔面板的左侧,点击 网站 ,然后点击 添加站点,填写你想绑定的域名和站点信息。
- 添加完成后,点击站点的设置,找到 反向代理 选项。
- 在代理目标填写 Node.js 监听的地址(如
http://127.0.0.1:3000
),并启用反向代理。
-
保存配置并重启 Nginx :
配置完成后,保存并重启 Nginx,然后项目就运行成功了。
第八步:测试和优化
-
测试服务 :
打开你绑定的域名或服务器的 IP 地址,检查是否可以正常访问你的 Node.js 服务。
-
监控和调试 :
使用 PM2 的日志功能来监控服务的状态和调试可能的问题:
bashpm2 logs my-node-app
-
SSL 配置(可选) :
如果需要配置 HTTPS,可以在宝塔面板的 SSL 选项中,使用 Let's Encrypt 免费申请证书,并绑定到你的站点。
结语:
通过宝塔面板,你可以轻松将本地的 Node.js 服务部署到线上,并通过 PM2 和 Nginx 实现进程管理和反向代理。整个过程简单高效,即便是没有太多服务器管理经验的开发者,也能快速上手。
希望这篇指南能帮助你顺利将本地 Node.js 服务部署到宝塔面板中!