如何将nodejs部署在服务器自动开启

PHPz
发布: 2023-05-18 09:32:37
原创
916 人浏览过

在当前云计算和Web应用开发时代,服务器的自动部署已经成为了一个不可避免的问题。而Node.js作为一种高效而又快速的服务器端框架,它的部署方式更是应用广泛。本文将为您介绍如何将Node.js部署在服务器上并实现自动开启。

一、服务器环境准备

首先,我们需要一个已经安装好Node.js的服务器环境,这里我们以Ubuntu系统服务器为例。如果你的服务器上还没有安装Node.js,请通过以下命令进行安装:(本文以Node.js版本为10为例)

sudo apt-get update sudo apt-get install nodejs sudo apt-get install npm
登录后复制

安装完成后,可通过以下命令查看Node.js版本:

node -v
登录后复制

二、项目准备

在将Node.js部署到服务器上之前,我们需要将我们的项目准备好。首先,我们需要将项目文件从本地拷贝到服务器上。这里我们使用scp命令将本地项目文件拷贝到服务器上。假设我们的项目文件在本地位于/home/user/project/目录下,我们要将其拷贝到服务器的/usr/local目录下。在本地终端执行以下命令:

scp -r /home/user/project/ username@server:/usr/local/
登录后复制

其中,-r表示递归拷贝所有文件,username为服务器的用户名,server为服务器IP地址或主机名。

三、安装pm2

在项目准备好之后,我们需要安装一个管理Node.js进程的工具——pm2。pm2具有自动重启进程、监控运行情况、多进程管理等功能,如果您的项目有多个进程需要管理,那么使用pm2会让管理更为简单清晰。在服务器上执行以下命令进行pm2安装:

npm install -g pm2
登录后复制

四、配置pm2自动开启

pm2已经安装完成后,我们需要在服务器上创建一个pm2的ecosystem.config.js文件(可在项目根目录下创建),内容如下:

module.exports = { apps : [{ name : 'app_name', //应用名称 script : 'app.js', //应用入口文件 log_date_format: 'YYYY-MM-DD HH:mm:ss', error_file : '/var/log/app_name/err.log', //错误日志路径 out_file : '/var/log/app_name/out.log', //输出日志路径 pid_file : '/var/run/app_name.pid', //pid文件路径 instances : 2, //进程数 autorestart: true, //自动重启 watch : true, //监听文件变化,自动重启 max_memory_restart: '1G', //最大内存限制达到指定值后,自动重启 env: { NODE_ENV: 'production' //环境变量 }, }], };
登录后复制

其中,需要根据实际情况,修改应用名称、应用入口文件等信息。注意:错误日志路径、输出日志路径、pid文件路径需要确保服务器上创建了相关目录。

除此之外,我们还需要通过以下命令创建pm2的启动脚本:

sudo pm2 startup systemd
登录后复制

上述命令会执行一个自动保存并引导pm2进程的脚本,生成的配置文件为/etc/systemd/system/pm2.service。执行完以上命令后,终端会输出一段文字,复制这段文字并在终端执行,即可完成自动开机启动pm2的配置。

五、启动应用

在以上步骤都准备完毕后,我们可以使用以下命令启动应用:

cd /usr/local/project_folder pm2 start ecosystem.config.js
登录后复制

其中,project_folder为项目文件夹,ecosystem.config.js为刚刚创建的pm2配置文件。执行以上命令后,终端会输出应用运行信息,通过以下命令可查看应用进程信息:

pm2 list
登录后复制

也可通过以下命令重启或停止应用:

pm2 restart app_name pm2 stop app_name
登录后复制

最后,在以上所有配置都完成后,将会在服务器重启后自动启动Node.js应用,并通过pm2监控应用的运行情况。

本文介绍了如何将Node.js部署在服务器上并实现自动开启。通过使用pm2管理Node.js进程,可大大简化服务器管理流程,提高应用的可靠性和稳定性。

以上是如何将nodejs部署在服务器自动开启的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!