服务器上部署Node.js项目,要是按照传统方式手动配置环境、进行进程管理和反向代理等操作,挺麻烦的。不过,有了宝塔面板,就easy很多。接下来,就详细给大家讲讲如何利用宝塔面板快速部署Node.js+Express后端项目。

一、安装Node.js

要部署Node.js项目,首先得在服务器上把Node.js和npm安装好。

  1. 登录宝塔面板,进入“软件商店”板块。这里就像是一个软件的超市,各种常用软件都能找到。
  2. 在软件商店的搜索框里输入“Node.js”,搜索结果出来后,点击安装按钮。建议选择最新的LTS版本,也就是长期支持版,它稳定性高,更适合项目部署。
  3. 安装完成后,宝塔面板会自动把Node.js和npm配置好,咱们不用再进行额外操作,直接进入下一步就行。

二、上传项目至服务器

项目代码得先上传到服务器上,上传方式有好几种,像FTP、SFTP都可以,当然,用宝塔面板自带的文件管理器也很方便。

  1. 打开宝塔面板,找到“文件管理”选项。这里就好比是服务器的文件仓库,能对文件进行各种操作。
  2. 在文件管理里,找到合适的存放项目文件的目录,比如“/www/wwwroot/your-project” 。如果没有这个目录,也可以新建一个。
  3. 把项目文件上传到指定目录。要是文件是压缩包格式,上传后记得解压,这样项目文件才能正常使用。

三、安装项目依赖

项目文件上传好了,接下来就得安装项目运行所需的依赖。

  1. 打开终端,既可以通过SSH连接服务器打开终端,也可以用宝塔面板自带的终端功能。
  2. 进入项目所在目录,在终端里输入下面的命令:
cd /www/wwwroot/your-project 

这条命令的作用就是告诉终端,接下来要操作的文件都在这个项目目录里。
3. 运行安装依赖的命令:

npm install 

执行这条命令后,npm会自动根据项目的配置文件,把项目所依赖的各种模块都安装好。要是项目还需要配置环境变量,别忘了在项目目录下创建一个名为“.env”的文件,然后在里面配置相关参数。

四、配置Nginx反向代理

Node.js服务器默认是监听某个端口的,比如3000端口,但为了能通过域名访问项目,就需要借助Nginx来做反向代理。

  1. 打开宝塔面板,依次点击“网站”-“你的网站”-“反向代理”。
  2. 在反向代理设置页面,添加一条反向代理规则。目标地址填写:
http://127.0.0.1:3000 

这就相当于告诉Nginx,当有请求进来时,把请求转发到本地3000端口的Node.js服务上。填好后,保存并应用配置。如果用的是Apache服务器,也可以在Apache配置里添加类似的反向代理规则,实现的效果是一样的。

五、借助PM2进行进程管理

为了保证Node.js项目能稳定运行,就算服务器重启了,项目也能自动恢复运行,推荐大家使用PM2这个工具。

  1. 先在终端里安装PM2,输入命令:
npm install -g pm2 

“-g”参数表示全局安装,这样在任何目录下都能使用PM2命令。
2. 进入项目目录,用PM2启动项目,输入命令:

pm2 start app.js --name your-project 

要是你的项目启动文件不是app.js,比如是server.js或者index.js,把命令里的app.js改成对应的文件名就行。“–name”参数是给这个项目进程取个名字,方便后续管理。
3. 设置PM2开机自启,在终端里依次输入:

pm2 startup pm2 save 

这样设置后,服务器重启时,PM2会自动启动,并且会按照之前保存的配置,把之前启动的项目进程也都启动起来。

六、开放防火墙端口

如果服务器的防火墙设置比较严格,那还得手动开放一些端口,不然项目可能无法正常访问。

  1. Nginx反向代理用到的端口,一般是80(HTTP协议)或443(HTTPS协议),这两个端口必须开放。
  2. 如果直接通过IP+端口的方式访问Node.js项目(没配置反向代理的情况下),Node.js服务监听的端口,比如3000端口,也需要开放。
  3. 在宝塔面板里找到“安全”选项,在防火墙规则里检查一下,确保上述端口都设置为允许访问。

七、测试与访问

到这里,Node.js项目就部署完成啦!接下来可以在浏览器里测试一下。

  1. 如果配置了反向代理,直接在浏览器地址栏输入域名:http://your-domain.com ,看看项目能不能正常打开。
  2. 如果没有配置反向代理,那就用IP+端口的方式访问,输入:http://your-server-ip:3000 。要是一切都没问题,项目就能正常运行啦!