下面我会详细讲解如何使用PM2进行Node.js应用的部署。
什么是PM2
PM2 是一个基于 Node.js 的进程管理工具,可以帮助我们方便的管理和部署 Node.js 应用程序。PM2 包含了很多有用的特性,例如进程守护、自动重启、性能监控等,是 Node.js 应用程序部署必不可少的工具之一。
PM2的部署方式
使用 PM2 部署 Node.js 应用,我们可以使用以下几种方式:
全局安装方式
使用全局安装方式,可以直接在服务器上通过npm安装PM2,从而实现在任何目录下启动和管理Node.js应用的方便操作。操作步骤如下:
- 在服务器上全局安装PM2:
npm install pm2 -g
- 运行 Node.js 应用程序:
pm2 start app.js
- 停止 Node.js 应用程序:
pm2 stop app.js
- 重启 Node.js 应用程序:
pm2 restart app.js
- 查看应用程序状态:
pm2 list
配置文件方式
使用配置文件方式,可以将应用程序的相关配置信息都保存在一个文件中,从而达到快速部署和管理 Node.js 应用的目的。具体操作步骤如下:
- 创建一个pm2的配置文件:
pm2 ecosystem
- 使用编辑器打开
ecosystem.config.js
进行编辑,配置以下内容:
module.exports = {
apps : [{
name: "app",
script: "./app.js",
instances: "max",
env: {
NODE_ENV: "production",
},
}],
};
其中: name
:应用程序的名称。script
:Node.js 应用程序的主文件路径。instances
:应用程序启动的实例数,支持字符串max
、数字1
、数字范围2-4
或者0
代表与 CPU 核心数相同的实例数。-
env
:应用程序运行的环境变量,通常包含数据库连接信息等敏感数据。 -
启动 Node.js 应用程序:
pm2 start ecosystem.config.js
- 停止 Node.js 应用程序:
pm2 stop ecosystem.config.js
- 重启 Node.js 应用程序:
pm2 restart ecosystem.config.js
- 查看应用程序状态:
pm2 list
PM2的示例
下面,我将通过两个使用示例来展示PM2的具体操作。
示例1:部署一个Express应用
- 安装 Express:
npm install express
- 创建一个名为
app.js
的文件,输入以下代码:
```
const express = require('express')
const app = express()
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.listen(3000, () => {
console.log('Example app listening on port 3000!')
})
``
npm install pm2 -g
3. 全局安装PM2:4. 启动应用程序:
pm2 start app.js5. 查看应用程序状态:
pm2 list`
示例2:部署一个Nuxt.js应用
- 安装 Nuxt.js:
npm install nuxt
- 创建一个名为
nuxt.config.js
的文件,输入以下代码:
export default {
server: {
port: 3000,
host: '0.0.0.0'
}
}
其中port
为Nuxt.js的启动端口,host
为时服务绑定的IP地址。 - 创建一个名为
package.json
的文件,输入以下代码:
{
"name": "nuxt-app",
"version": "1.0.0",
"dependencies": {
"nuxt": "^2.15.7"
},
"scripts": {
"dev": "nuxt",
"build": "nuxt build",
"start": "nuxt start"
}
} - 全局安装PM2:
npm install pm2 -g
- 构建Nuxt.js应用程序:
npm run build
- 启动应用程序:
pm2 start npm --name nuxt-app -- run start
其中,--name
参数指定应用程序名称,--
后面的命令run start
意味着执行npm start
命令。 - 查看应用程序状态:
pm2 list
通过以上两个示例,相信大家已经了解如何使用PM2进行Node.js应用程序的部署了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:nodejs高大上的部署方式(PM2) - Python技术站