如何使用 Systemd 和 Nginx 部署 Node.js 应用程序

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

介绍

在将 Web 应用部署到 Droplet 时,可能会诱人地简单地使用与开发中相同的设置,即在终端中运行“ruby app.rb”或“node server.js”来启动服务器。这样做简单易行,同时提供可见的日志。甚至可以使用“screen”、“tmux”或“nohup”来使其在 SSH 会话断开时保持运行。但这是危险的:如果服务器崩溃而没有人在附近重新启动它会怎么样呢?

可以使用 forever 和 crontab 来解决这个问题。本教程提供了一个更健壮但更复杂的解决方案。使用 systemd(在 Arch 和 Fedora 上可用,在将来的 CentOS 上也可用),可以全面管理 Web 应用程序:日志、正常运行时间、通过 cgroups 进行资源和安全性控制,以及高级守护程序启动,所有这些都可以以统一的方式访问、控制和微调。

本教程使用一个简单的 Node.js 应用程序,但同样适用于大多数其他应用程序(无论是 Ruby、Python 等)。对于 PHP Web 应用程序,建议使用更专业的 LAMP 或 LEMP 堆栈。

将为 Fedora 和 Arch 提供命令,请注意区分以避免配置错误和/或混淆。如果没有指示,命令对两个系统都是相同的。还建议在逐步尝试之前阅读整个教程,以便了解其内容并确定它是否适合您的情况。

系统准备工作

  • 一个带有 systemd 的服务器。默认情况下,Arch Linux 和 Fedora droplets 已配置好。

  • Nginx,用作反向代理 HTTP 和 WebSocket 服务器。

  • Git,用于安装 nvm,并在使用 git 时拉取您的应用程序。

  • Root 访问权限。也可以以普通用户身份登录并对所有命令使用 sudo,或者切换到 root 提示符的 su -sudo su -

安装软件包

Arch:

# pacman -Sy
# pacman -S nginx git

Fe

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/23192.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#-for循环语句

for循环语句 语法: for(初始化变量; 判断条件; 增量表达式) { // 内部代码 } 第一个空(初始表达式): 一般用来声明一个临时的局部变量 用来计数第二个空(条件表达式): 表明进入循环的条件 一个bool类型的值(bool类型 条件表达式 逻辑运算符)第三个空(增量表达式): 使用第一个空…

Python怎么翻译:探索Python在翻译领域的无限可能

Python怎么翻译:探索Python在翻译领域的无限可能 Python,这门强大而灵活的编程语言,已经在众多领域展现了其独特的魅力。然而,当谈到翻译这一领域时,许多人可能会感到困惑:Python怎么能用于翻译呢&#xf…

OpenCV如何判断一张图片是否有过高的明暗变化

操作系统:ubuntu22.04OpenCV版本:OpenCV4.9IDE:Visual Studio Code编程语言:C11 前言 判断一张图片是否有过高的明暗变化,可以通过分析图像的亮度分布一致性来实现。一种常见的做法是计算图像的亮度标准差(Standard …

免费,C++蓝桥杯等级考试真题--第7级(含答案解析和代码)

C蓝桥杯等级考试真题--第7级 答案:D 解析:步骤如下: 首先,--a 操作会使 a 的值减1,因此 a 变为 3。判断 a > b 即 3 > 3,此时表达式为假,因为 --a 后 a 并不大于 b。因此,程…

ESP32-C3模组上跑通NVS(4)

接前一篇文章:ESP32-C3模组上跑通NVS(3) 本文内容参考: 非易失性存储库 - ESP32 - — ESP-IDF 编程指南 latest 文档 ESP32-C3入门教程 基础篇(八、NVS — 非易失性存储库的使用)_esp入门教学-CSDN博客 …

STM32 启用指令缓存 HAL_ICACHE_Enable

函数在 STM32 的 HAL(硬件抽象层)库中通常用于启用指令缓存(I-Cache)。以下是该函数的主要功能: 启用指令缓存: 当调用 HAL_ICACHE_Enable 函数时,STM32 的 Cortex-M 处理器(特别是…

ElementUI的Table组件在无数据情况下让“暂无数据”文本居中显示

::v-deep .el-table__empty-block {width: 100%;min-width: 100%;max-width: 100%; }

如何在npm上发布自己的包

如何在npm上发布自己的包 npm创建自己的包 一、一个简单的创建 1、创建npm账号 官网:https://www.npmjs.com/创建账号入口:https://www.npmjs.com/signup 注意:需要进入邮箱验证 2、创建目录及初始化 $ mkdir ufrontend-test $ cd ufron…

今日科普:了解、预防、控制高血压

高血压,常被称为“隐形的健康威胁”,许多患者可能在毫无预警的情况下发病,且患病率逐年攀升,同时患者群体逐渐年轻化,高血压虽然难以根治,但并不可怕,真正可怕的是血压长期居高不下,…

STM32(七):ADC电位检测 (标准库函数)

前言 上一篇文章已经介绍了如何用STM32单片机中的定时器的PWM波来实现LED的“呼吸”。这篇文章我们来介绍一下如何用STM32单片机中ADC进行电位检测,并发送到XCOM串口中显示。 一、实验原理 1.ADC模数转换的介绍 首先,我们先介绍一下AD模数模块&#…

arcpy批量导出图且图名为shp属性值

1.打开arcmap加载需要导出的图。需求是逐村显示“村界内图斑”并导出为图,在导出每个村时不显示周围的村和“村界内图斑” 2.arcmap上方空白处右键打开“数据驱动页面” 3.在“数据驱动页面”工具条点击第一个图标,打开“设置数据驱动页面” 4.在“设置…

Oracle触发器的用途

0.DDL和DML DDL:data manipulation language,数据操作语言,主要命令有select,update,insert,delete,主要用于对数据库中的数据进行操作 DDL:data definition language,数据定义语言,主要命令有create,alter&#xff…

Spring (40)Spring Cloud和Spring Boot

Spring Boot和Spring Cloud是两个在现代Java应用开发中广泛使用的项目,它们共同构成了创建云原生、微服务架构应用的强大基础。虽然它们紧密协作,但服务于不同的目的。下面,我们将深入探讨它们之间的关系,结合源码和代码示例来进行…

Java1.8全套家政上门服务+springboot+ mysql +Thymeleaf 技术架构开发,家政APP系统在线派单,师傅入驻全套商业源码

Java1.8全套家政上门服务springboot mysql Thymeleaf 技术架构开发,家政APP系统在线派单,师傅入驻全套商业源码 家政预约上门小程序的实用性? 家政预约上门小程序的实用性主要体现在以下几个方面: 一、方便快捷的预约体验&#…

尚硅谷2024新版3小时速通Docker教程

尚硅谷2024新版3小时速通Docker教程 百度网盘:https://pan.baidu.com/s/1SncgHbdJehvZspjcrrbLSw?pwd6c27

【数据结构与算法 经典例题】随机链表的复制(图文详解)

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《数据结构与算法 经典例题》C语言 期待您的关注 ​ 目录 一、问题描述 二、解题思路 三、代码实现 1. 原链表中节点的数据拷…

采用JWT令牌和Filter进行登录拦截认证

原理描述: 1、第一次登录的时候,生成JWT令牌,并JWT令牌存放在localStorage。 localStorage.setItem(token, token); 2、每次通过axios发送请求的时候,都将这个令牌获取,并放于header中发送。 也就是JWT令牌只在登录…

PCL 抛物线回归拟合(Quadratic,二维)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 这里仍然是最小二乘法的应用,其推导过程如下所述: 1.二次函数模型: 其中,a、b 和 c 是需要确定的参数。 2.最小二乘法 假设我们有一组数据点 ( x 1 ​ , y

大数据平台技术选型

大数据平台的技术选型是一个复杂的过程,需要考虑多种因素,如数据量、数据类型、处理速度、成本预算、团队技术能力以及未来扩展性等。以下是大数据平台技术选型的一些关键方面和常用技术: 1. 数据存储 Hadoop HDFS (Hadoop Distributed Fil…

实用软件分享---中医自学宝典(安卓)

专栏介绍:本专栏主要分享一些实用的软件(Po Jie版); 声明1:软件不保证时效性;只能保证在写本文时,该软件是可用的;不保证后续时间该软件能一直正常运行;不保证没有bug;如果软件不可用了,我知道后会第一时间在题目上注明(已失效)。介意者请勿订阅。 声明2:本专栏的…