从购买域名到使用PM2部署Node.js项目的完整指南

作者:终端旅客

时间:2026-10-22

浏览:665

本文详细记录了前端项目从购买域名和服务器开始,到在CentOS环境下安装Node.js与PM2,再到使用Git克隆项目、配置PM2集群模式以及通过Nginx进行反向代理的完整部署流程。涵盖环境初始化、依赖安装、进程守护及开机自启等关键步骤,帮助开发者顺利完成Node.js项目的线上部署。

文章目录

前言与部署背景

作为前端开发者,面对将本地项目部署至服务器的任务时,往往感到无从下手。尽管存在困惑,但出于对技术实现的浓厚兴趣,我决定亲自尝试并执行部署操作。

域名与服务器选购

一、域名与服务器选购

部署项目的前提是拥有独立的域名,这是不可或缺的环节。目前腾讯云提供限时免费的服务器资源(免费期为7天),因此我首先在腾讯云注册了域名,随后领取了免费服务器。在此过程中,需完成账号的实名认证。

前言与部署背景

域名注册流程

前言与部署背景

服务器领取流程

在腾讯云后台选择CentOS系统的服务器后,需进行域名解析配置,并对服务器基础环境进行设置,包括账号密码等安全信息的设定。

前言与部署背景

域名解析配置

Node.js运行环境部署

二、Node.js运行环境部署

(一)服务器登录与系统更新


yum update -y

(二)安装Node.js与PM2工具

使用wget命令下载Node.js安装包。该安装包为预编译文件,解压后bin目录下已包含node和npm可执行文件,无需再次进行源码编译。


wget https://nodejs.org/dist/v8.9.3/node-v8.9.3-linux-x64.tar.xz

执行文件解压操作。


tar xvf node-v8.9.3-linux-x64.tar.xz

创建软链接以实现node和npm的全局可用。通过建立软链接,确保在任意目录下均可直接调用node和npm命令:


ln -s /root/node-v8.9.3-linux-x64/bin/node /usr/local/bin/node
ln -s /root/node-v8.9.3-linux-x64/bin/npm /usr/local/bin/npm

检查node与npm的版本信息。


node -v
npm -v

至此,Node.js基础环境安装完成。软件默认安装路径为/root/node-v8.9.3-linux-x64/。若需将软件迁移至其他目录(例如/opt/node/),请执行以下操作:


mkdir -p /opt/node/
mv /root/node-v8.9.3-linux-x64/* /opt/node/
rm -f /usr/local/bin/node
rm -f /usr/local/bin/npm
ln -s /opt/node/bin/node /usr/local/bin/node
ln -s /opt/node/bin/npm /usr/local/bin/npm

安装PM2进程管理器


npm install pm2@latest -g

创建软链接,使pm2命令具备全局执行权限。


ln -s /root/node-v8.9.3-linux-x64/bin/pm2 /usr/local/bin/pm2

项目代码部署

三、通过Git将项目部署至服务器

首先登录服务器根目录,查看根目录下的文件夹内容,随后进入var目录。在var目录下新建www文件夹,查看var目录内容后,进入www目录。依次执行的命令如下:


cd /
ls
cd var
ls
mkdir www
cd www

相关操作截图

前言与部署背景

随后,将代码仓库中的项目通过git clone命令拉取至服务器。

若服务器未安装git,需先使用以下命令进行安装:


yum install git
y

进入项目根目录。

前言与部署背景

截图中显示存在一个非Express项目的文件,该文件为PM2的配置文件。PM2的具体配置方法可参考官方文档:http://pm2.keymetrics.io/docs/usage/cluster-mode/

以下是我的项目配置示例(新手编写,如有疏漏欢迎指正):


{
 "apps": [
  {
   "name": "app1",
   "script": "bin/www",
   "log_date_format": "YYYY-MM-DD HH:mm:SS",
   "log_file": "logs/app1.log",
   "error_file": "logs/app1-err.log",
   "out_file": "logs/app1-out.log",
   "pid_file": "pids/app1.pid",
   "instances": 1,
   "min_uptime": "200s",
   "max_restarts": 10,
   "max_memory_restart": "1M",
   "cron_restart": "1 0 * * *",
   "watch": false,
   "merge_logs": true,
   "exec_interpreter": "node",
   "exec_mode": "cluster_mode",
   "autorestart": true,
   "vizion": false
  }
 ]
}

项目启动与管理

四、项目启动与管理


pm2 start processes.json

关闭运行中的项目


先查找ID
pm2 status
然后,停止相应项目的id
pm2 stop id

重新启动指定项目


先查找ID
pm2 status
然后,开启相应项目的id
pm2 start id

配置PM2开机自启动


pm2 startup
pm2 save

选用PM2启动项目的主要原因是,即使断开服务器连接,Node.js项目仍能保持运行状态。

此时项目虽已部署完成,但访问端口被限制为80端口。后台开发人员建议使用Nginx作为反向代理服务器,并提供了相应的安装指导。

Nginx反向代理配置

五、Nginx安装与配置

执行Nginx安装命令


yum install nginx

Nginx配置步骤

进入配置文件夹目录,编辑nginx.conf文件;或者在conf.d目录下新建后缀名为.conf的配置文件。


cd /
cd etc/nginx
vim nginx.conf

配置界面截图

前言与部署背景

此处涉及vim编辑器的基本使用方法,建议查阅相关教程。

简要介绍几个常用快捷键,直接按下键盘:


i  编辑
Esc 退出编辑
:q  退出vim编辑器
:wq 保存并退出vim编辑器

以下是我的Nginx配置示例(新手编写,如有疏漏欢迎指正):

前言与部署背景

启动Nginx服务


service nginx start

此时Nginx服务已正常运行。

每次修改Nginx配置后,均需重启服务,使用以下命令:


service nginx reload

设置Nginx开机自启动


ln -s /bin/systemctl /usr/local/bin/systemcel
systemcel enable nginx

至此,Node.js项目在服务器上的部署工作全部结束,直接访问网址即可。再次感谢公司PHP开发人员的指导以及网络上技术分享者的贡献,也希望大家多多支持本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章