前言
NodeJS 作为一门非常流行的语言,用于构建 Web 应用程序和服务端。以 NodeJS 为基础的 Web 应用程序通常都是需要部署到服务器上的,而手动部署显得非常麻烦和容易出错,这时候就需要一种自动化的部署方法。本文将介绍一种利用 PM2 进行 NodeJS 应用自动化部署的方法。
PM2 简介
PM2 是一个高级的 Node.js 进程管理器,可以在生产环境中管理和监控您的 Node.js 应用程序。使用 PM2 进行应用程序的进程调度,负载均衡和自动重启,甚至可以部署到多台服务器上。
PM2 具有以下特性:
- 内置负载平衡器(使用 Node.js 集群模块)。
- 支持 0 秒停机重载,方便迭代和 0 秒停机部署。
- 内置进程守护,保证进程随时可用。
- 支持常驻内存,保证应用程序随时能够响应请求。
- 内存监视,保证应用程序正常运行,如有异常及时通知管理员。
使用 PM2 进行 NodeJS 应用自动化部署的方法
第一步:安装 PM2
安装 PM2 很简单,只需要使用 npm 全局安装即可:
npm install pm2 -g
第二步:设置环境变量
在使用 PM2 部署应用之前,需要先设置好环境变量。在终端中执行以下命令:
export NODE_ENV=production
如果需要永久设置环境变量,则需要在系统相关文件中设置,比如可以将其添加到 /etc/profile 中。
第三步:部署应用
在部署应用之前,需要将代码从本地上传到服务器上。这里以 Git 作为版本控制工具为例,先在服务器上创建一个文件夹用于存放代码,然后使用 Git 将代码从仓库中拉取到服务器上:
git clone https://github.com/your/repo.git /path/to/app
如果是第一次部署应用,则需要在 /path/to/app 目录下执行以下命令进行依赖安装:
npm install
接下来,使用 PM2 部署应用:
pm2 start /path/to/app/app.js --name myapp
这里的 /path/to/app/app.js 是应用的入口文件,--name myapp 是应用的名称,可以随便取一个便于记忆的名称。执行以上命令之后,应用将会在后台以 daemon 进程的方式运行。
第四步:配置 PM2
为了让 PM2 能够自动重启应用,在应用发生异常退出或服务器重启时保证应用不会因此停止运行,需要对 PM2 进行配置。具体配置如下:
pm2 startup pm2 save
执行以上命令,PM2 将自动创建一个 init 系统,并将正在运行的进程保存到该系统中,以便系统重启时能够自动恢复运行。
第五步:监控应用
使用 PM2 一个重要的优势就是能够通过命令行实时监控应用程序的运行状态,确保应用程序的长期稳定运行。
pm2 status
该命令将输出正在运行的应用程序的状态信息,包括应用程序名称、ID、状态等信息。
示例代码
以下是一个简单的 NodeJS 应用程序示例代码,用于演示 PM2 进行自动化部署的方法:
-- -------------------- ---- ------- ----- ---- - ---------------- ----- -------- - ------------ ----- ---- - ----- ----- ------ - ----------------------- ---- -- - -------------- - ---- ----------------------------- -------------- -------------- ----------- --- ------------------- --------- -- -- - ------------------- ------- -- ------------------------------ ---
该应用使用 NodeJS 内置的 http 模块创建了一个简单的 Web 服务器,在浏览器中访问 http://127.0.0.1:3000/ 将输出 "Hello World!"。
结论
利用 PM2 进行 NodeJS 应用自动化部署,可以大大简化部署的流程,提高部署的效率和稳定性。本文详细介绍了利用 PM2 部署的方法,并附带了示例代码,方便大家学习和实践。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67077d6cd91dce0dc869362f