如何将本地 Node.js 服务部署到宝塔面板:完整的部署指南

文章简介:

将本地开发的 Node.js 项目部署到线上服务器是开发者常见的工作流程之一。在这篇文章中,我将详细介绍如何将本地的 Node.js 服务通过宝塔面板(BT 面板)上线。宝塔面板是一个强大的服务器管理工具,具有简洁的 UI 和丰富的功能,适合用来管理服务器、部署应用程序和维护网站。


正文:

宝塔面板(BT)提供了方便的 Web 界面,简化了服务器管理和网站运维的流程。将本地 Node.js 服务部署到宝塔服务器,经过以下几个步骤即可轻松实现。

第一步:准备你的本地 Node.js 服务

在将服务部署到服务器之前,首先确保你的本地 Node.js 项目已经准备好,并且可以正常启动。

  1. 安装项目依赖
    如果还没有安装依赖,首先在项目根目录下执行以下命令:

    npm install
    
  2. 本地启动项目
    使用以下命令确保项目可以在本地成功运行:

    npm start
    

    或者:

    node app.js
    

    确保应用正常启动并没有报错,浏览器中可以正常访问。

  3. 配置项目端口
    检查你的 app.jsserver.js 文件,确保定义了服务监听的端口,比如:

    const port = process.env.PORT || 3000;
    app.listen(port, () => {
      console.log(`Server is running on port ${port}`);
    });
    
第二步:准备宝塔面板服务器

如果你已经在宝塔面板上配置了服务器,可以直接跳到下一步。如果还没有,则需要配置一台服务器并安装宝塔面板。

  1. 购买服务器
    登录阿里云、腾讯云等云服务商平台,选择合适的服务器配置(如 2vCPU、4G 内存),并购买服务器。

  2. 安装宝塔面板
    登录到你的服务器后,执行以下命令来安装宝塔面板:

    CentOS 系统:

    yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
    

    Ubuntu/Debian 系统:

    wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
    

    执行安装脚本后,系统会提示安装成功,并给出宝塔面板的登录地址、账号和密码。

  3. 登录宝塔面板
    打开浏览器,访问安装成功时提示的面板地址,使用提供的账号密码登录宝塔。

第三步:安装 Node.js 运行环境

宝塔面板的强大之处在于它支持一键安装各种常用的运行环境。我们需要安装 Node.js 来运行我们的应用。

  1. 在宝塔面板中安装 Node.js

    • 打开宝塔面板的 软件商店
    • 在左侧栏中找到 运行环境,然后找到 Node.js
    • 选择你需要的 Node.js 版本,点击安装。
  2. 检查 Node.js 是否安装成功
    安装完成后,打开 终端SSH 工具(如 PuTTY),在命令行中输入以下命令,检查 Node.js 是否已成功安装:

    node -v
    

    如果显示 Node.js 的版本号,则安装成功。

第四步:上传你的 Node.js 项目

接下来,你需要将本地的项目文件上传到宝塔面板的服务器。

  1. 打包你的项目
    在本地项目目录下执行以下命令来打包项目:

    zip -r my-node-app.zip .
    
  2. 上传到服务器

    • 在宝塔面板中,点击左侧的 文件
    • 选择你想要存放项目的目录(通常是 /www 目录下),然后点击右上角的 上传 按钮,将 my-node-app.zip 文件上传到服务器。
    • 上传完成后,解压该压缩包,确保所有项目文件上传成功。
第五步:安装项目依赖
  1. 通过 SSH 登录服务器,进入到你的项目目录:

    cd /www/my-node-app
    
  2. 安装依赖
    执行以下命令,安装项目的依赖库:

    npm install
    

    这一步会自动读取 package.json 中的依赖并进行安装。

第六步:配置 PM2 管理 Node.js 服务

为了让你的 Node.js 服务能够持续运行,我们使用 PM2 来管理应用进程。PM2 是一个非常流行的 Node.js 进程管理工具,支持应用的自动重启和监控。

  1. 安装 PM2
    在服务器终端中,执行以下命令安装 PM2:

    npm install pm2 -g
    
  2. 启动你的 Node.js 服务
    使用 PM2 启动 Node.js 应用:

    pm2 start app.js --name "my-node-app"
    
    • app.js 是你应用的入口文件。
    • --name 参数为你的应用命名,方便在多个应用中管理。
  3. 设置开机自启
    为了确保服务器重启后,Node.js 服务可以自动启动,执行以下命令:

    pm2 startup
    pm2 save
    
第七步:配置 Nginx 反向代理

在宝塔面板中,我们可以通过 Nginx 反向代理将外部请求转发给 Node.js 服务。

  1. 安装 Nginx
    软件商店 中,找到 Nginx,选择安装。

  2. 配置 Nginx 反向代理

    • 在宝塔面板的左侧,点击 网站,然后点击 添加站点,填写你想绑定的域名和站点信息。
    • 添加完成后,点击站点的设置,找到 反向代理 选项。
    • 在代理目标填写 Node.js 监听的地址(如 http://127.0.0.1:3000),并启用反向代理。
  3. 保存配置并重启 Nginx
    配置完成后,保存并重启 Nginx,然后项目就运行成功了。
    在这里插入图片描述

第八步:测试和优化
  1. 测试服务
    打开你绑定的域名或服务器的 IP 地址,检查是否可以正常访问你的 Node.js 服务。

  2. 监控和调试
    使用 PM2 的日志功能来监控服务的状态和调试可能的问题:

    pm2 logs my-node-app
    
  3. SSL 配置(可选)
    如果需要配置 HTTPS,可以在宝塔面板的 SSL 选项中,使用 Let’s Encrypt 免费申请证书,并绑定到你的站点。


结语:

通过宝塔面板,你可以轻松将本地的 Node.js 服务部署到线上,并通过 PM2 和 Nginx 实现进程管理和反向代理。整个过程简单高效,即便是没有太多服务器管理经验的开发者,也能快速上手。

希望这篇指南能帮助你顺利将本地 Node.js 服务部署到宝塔面板中!

<think>嗯,用户想在阿里云的CentOS服务器上部署一个需要连接MySQL数据库的Node.js项目。首先,我需要回忆一下相关的步骤,可能需要参考之前提供的引用内容。 根据引用[1],部署流程包括准备服务器、连接宝塔面板、上传项目、配置数据库,以及启动Node.js应用。引用[2]提到购买阿里云服务器并选择CentOS系统,然后远程连接。引用[3]则建议不要在服务器上传node_modules,而是在服务器上安装依赖。 首先,用户可能需要先购买和配置服务器。然后安装必要的工具,比如宝塔面板,这样能方便管理。接下来是上传Node.js项目,配置Nginx反向代理,处理MySQL数据库的导入。安装Node.js环境,使用PM2来管理进程。同时,要确保开放相关端口,比如MySQL的3306和Node.js的端口。 用户的问题还涉及MySQL的连接配置,所以需要确保在服务器上正确安装MySQL,创建数据库,导入数据,并且在Node.js项目中配置正确的数据库连接信息,比如主机地址、用户名、密码等。可能还需要处理安全组设置,允许外部访问数据库端口,但要注意安全性,可能建议使用内网地址或者SSH隧道。 另外,根据引用[3],应该在服务器上通过npm install安装依赖,而不是上传node_modules,这样可以节省时间和带宽。同时,使用PM2守护进程可以避免Node.js应用因为异常退出而停止服务。 可能还需要考虑防火墙设置,CentOS默认的firewalld或者iptables规则是否允许相关端口。宝塔面板可能会自动配置一些,但需要检查确认。 总结一下,步骤大概是:1. 准备服务器和宝塔面板;2. 上传项目文件;3. 配置MySQL数据库;4. 安装Node.js和依赖;5. 配置Nginx反向代理;6. 使用PM2启动应用;7. 开放端口和检查安全组。 需要确保每个步骤详细,比如如何导入数据库,如何修改Node.js的数据库连接配置,如何处理可能的错误,比如连接数据库失败的情况。可能还要提醒用户检查数据库权限,确保用户可以从Node.js应用所在的服务器IP访问MySQL。 最后,生成相关问题,比如性能优化、HTTPS配置、备份策略等,帮助用户进一步了解相关主题。</think>### 分步指南:在阿里云CentOS服务部署Node.js项目并连接MySQL数据库 --- #### **一、服务器准备与基础配置** 1. **购买与连接服务器** - 在阿里云购买CentOS 7/8实例,获取公网IP、root账号和密码[^2]。 - 使用FinalShell或Xshell通过SSH连接服务器: ```bash ssh root@服务器公网IP ``` 2. **安装宝塔面板(可选但推荐)** - 执行宝塔安装命令: ```bash yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ``` - 安装完成后记录面板地址、账号密码,用于Web管理(Nginx、MySQL等)[^1]。 --- #### **二、部署Node.js项目** 1. **上传项目文件** - 通过宝塔面板「文件」功能或FTP工具(如FileZilla)上传项目到服务器目录(如`/www/wwwroot/node-app`)。 - **重要**:不要上传`node_modules`文件夹,在服务器上安装依赖[^3]。 2. **安装Node.js环境** - 宝塔面板「软件商店」搜索安装Node.js版本管理器」,选择与项目匹配的版本(如Node.js 16.x)。 - 或手动安装: ```bash curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash - yum install nodejs ``` 3. **安装项目依赖** ```bash cd /www/wwwroot/node-app npm install --production ``` 4. **配置MySQL连接** - 修改项目中的数据库配置文件(如`config.js`): ```javascript module.exports = { host: 'localhost', // 若数据库在同一服务器 user: 'your_db_user', // 数据库用户名 password: 'your_db_pwd',// 数据库密码 database: 'your_db_name', port: 3306 }; ``` --- #### **三、配置MySQL数据库** 1. **安装MySQL** - 宝塔面板「软件商店」一键安装MySQL 5.7/8.0,设置root密码。 2. **创建数据库并导入数据** - 通过宝塔面板「数据库」模块创建新数据库,设置用户名和权限。 - 本地导出SQL文件后,通过宝塔「phpMyAdmin」或命令行导入: ```bash mysql -u root -p your_db_name < /path/to/backup.sql ``` 3. **检查连接权限** - 确保数据库用户允许从本地(或指定IP)访问: ```sql GRANT ALL PRIVILEGES ON your_db_name.* TO 'your_db_user'@'localhost' IDENTIFIED BY 'your_db_pwd'; FLUSH PRIVILEGES; ``` --- #### **四、启动Node.js服务** 1. **使用PM2守护进程** - 安装PM2并启动项目: ```bash npm install pm2 -g pm2 start app.js --name "node-app" pm2 save && pm2 startup ``` 2. **配置Nginx反向代理** - 在宝塔面板添加站点,配置反向代理到Node.js端口(如3000): ```nginx location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; } ``` --- #### **五、安全与端口配置** 1. **开放防火墙端口** - 阿里云控制台「安全组」放行端口:80(HTTP)、443(HTTPS)、3000(Node.js应用端口)、3306(MySQL,建议仅内网访问)[^2]。 - 若使用宝塔,需同步放行宝塔面板端口(默认8888)。 2. **禁用MySQL公网访问(可选)** - 修改MySQL配置文件`my.cnf`,绑定监听IP为`127.0.0.1`: ```ini [mysqld] bind-address = 127.0.0.1 ``` --- #### **六、验证与调试** 1. **检查服务状态** ```bash pm2 list # 查看Node.js进程 systemctl status mysqld # 检查MySQL状态 ``` 2. **日志排查** - Node.js日志:`pm2 logs node-app` - MySQL连接错误:检查权限配置和防火墙规则。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值