教你如何使用NGINX和PM2部署VPS服务器上的Node.js应用

发布时间 - 2023-09-26 00:00:00    点击率:

教你如何使用NGINX和PM2部署VPS服务器上的Node.js应用

今天我将向大家介绍如何使用NGINX和PM2来部署VPS服务器上的Node.js应用。Node.js是一个非常流行的后端开发框架,而NGINX是一个高性能的反向代理服务器,PM2是一个强大的进程管理器。通过结合使用这三个工具,我们可以实现高效、稳定的服务器部署。

  1. 确保你已经安装了Node.js和NPM。如果没有安装,可以通过以下命令进行安装:
sudo apt-get update
sudo apt-get install nodejs
sudo apt-get install npm
  1. 安装PM2进程管理器。PM2可以帮助我们管理Node.js应用的进程,在应用崩溃时自动重新启动。使用以下命令进行安装:
sudo npm install -g pm2
  1. 创建一个简单的Node.js应用程序。在你的VPS上创建一个新的文件夹,并在其中创建一个名为 app.js 的文件。在 app.js 中编写你的应用程序代码。例如,以下是一个简单的Express应用程序代码:
var express = require('express');
var app = express();

app.get('/', function(req, res) {
  res.send('Hello World!');
});

app.listen(3000, function() {
  console.log('App listening on port 3000!');
});
  1. 使用PM2启动应用程序。在终端中,导航到应用程序目录并运行以下命令:
pm2 start app.js

现在,你的应用程序已经通过PM2启动,并且会在失败时自动重新启动。

  1. 配置NGINX反向代理。我们希望将 NGINX 配置为监听80端口,将传入的请求转发到我们的Node.js应用程序。打开NGINX配置文件,路径一般为 /etc/nginx/sites-enabled/default,并进行如下配置:
server {
  listen 80;
  server_name your-domain.com;

  location / {
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   Host      $http_host;
    proxy_pass         http://127.0.0.1:3000;
  }
}

在该配置中,将 your-domain.com 替换为你的域名。然后,将 127.0.0.1:3000 替换为你的应用程序运行的地址和端口。

  1. 保存并关闭配置文件。然后,重新加载NGINX配置以使其生效:
sudo service nginx reload

现在,NGINX将通过反向代理将传入的请求发送到我们的Node.js应用程序。

恭喜!你已经成功地使用NGINX和PM2部署了VPS服务器上的Node.js应用程序。现在,你可以访问你的域名,应该可以看到你的应用程序运行的内容。

以上是使用NGINX和PM2部署VPS服务器上的Node.js应用的简要指南,希望能对你有所帮助。


# nginx  # nodejs  # npm  # express  # JS  # default  # 应用程序  # 是一个  # 器上  # 你已经  # 管理器  # 重新启动  # 如何使用  # 创建一个  # 配置文件  # 你可以 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Claude怎样写约束型提示词_Claude约束提示词写法【教程】  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  linux top下的 minerd 木马清除方法  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  网站优化排名时,需要考虑哪些问题呢?  lovemo网页版地址 lovemo官网手机登录  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  Laravel怎么使用artisan命令缓存配置和视图  Windows Hello人脸识别突然无法使用  详解Android图表 MPAndroidChart折线图  微信小程序制作网站有哪些,微信小程序需要做网站吗?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  JS弹性运动实现方法分析  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  西安专业网站制作公司有哪些,陕西省建行官方网站?  如何用y主机助手快速搭建网站?  Laravel如何处理异常和错误?(Handler示例)  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  利用python获取某年中每个月的第一天和最后一天  简历在线制作网站免费版,如何创建个人简历?  高防服务器租用指南:配置选择与快速部署攻略  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  如何在云主机快速搭建网站站点?  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  如何在自有机房高效搭建专业网站?  详解jQuery中的事件  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  如何快速生成高效建站系统源代码?  网易LOFTER官网链接 老福特网页版登录地址  Linux安全能力提升路径_长期防护思维说明【指导】  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  如何彻底删除建站之星生成的Banner?  nginx修改上传文件大小限制的方法  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  Swift中swift中的switch 语句  中国移动官方网站首页入口 中国移动官网网页登录  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  Laravel如何使用Telescope进行调试?(安装和使用教程)  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  如何用好域名打造高点击率的自主建站?  详解jQuery停止动画——stop()方法的使用  Angular 表单中正确绑定输入值以确保提交与验证正常工作  如何快速搭建安全的FTP站点?  Laravel如何集成Inertia.js与Vue/React?(安装配置)  独立制作一个网站多少钱,建立网站需要花多少钱?  如何批量查询域名的建站时间记录?  用v-html解决Vue.js渲染中html标签不被解析的问题