0


如何在单个VPS上使用nginx、forever和crontab托管多个Node.js应用

遵循本教程的要求


您需要安装 nginx 和 Node.js,并且在 DigitalOcean 上已经有关于这些主题的教程:

如何安装 nginx 和 如何安装 Node.js。

此外,您应该已经拥有一个域名,以便将正在运行的 Node.js 服务映射到域名,而不是导航到 http://[your-vps-ip]:[port]。

使用 Forever 运行您的 Node.js 应用程序


Forever 是一个简单的命令行工具,用于确保 Node.js 应用程序持续运行(即永远)。这意味着如果您的应用程序遇到错误并崩溃,forever 将为您处理此问题并重新启动它。

只需全局安装 forever,然后可以在几秒钟内使用 forever:

npm install forever -g

要使用 forever 启动脚本,您需要按照以下步骤进行操作:

导航到您的 Node.js 应用程序:

cd /path/to/your/node/app/

并使用 forever 运行 server/main JavaScript 文件:

forever start --spinSleepTime 10000 main.js

其中

--spinSleepTime 10000

是指崩溃脚本之间的最小正常运行时间(以毫秒为单位)。此命令几乎适用于所有情况。

现在将您的浏览器指向 http://[your-vps-ip]:[port],然后查看您的应用程序正在运行。

将域名映射到您的 Node.js 应用程序


现在,您需要在 DigitalOcean 控制面板中添加 DNS 记录,将您的域名映射到您的 droplet(VPS)。

要遵循的步骤如下:

  • 登录到 DigitalOcean.com
  • 点击左侧边栏中的“DNS”部分
  • 通过单击“添加域名”按钮,选择您选择的 VPS,并在“名称”字段中输入您注册的域名,添加一个域
  • 复制 DigitalOcean 提供的域名服务器(例如 NS1.DIGITALOCEAN.COM.),并将每个域名服务器添加到您的域名注册商的控制面板中的 DNS 记录中。
  • 注意:更改不会立即生效,因为 DNS 可以需要最多 24 小时才能传播。### 将域名映射到在您的 VPS 上运行的服务的 nginx---在本节中,您将学习如何通过几个简单的步骤在 nginx 中设置反向代理。首先,在 /etc/nginx/conf.d/ 中为您想要的域名创建一个文件,使用您喜欢的编辑器(我将使用 nano)。该文件应该以域名命名,以保持一致性。nano /etc/nginx/conf.d/example.com.conf注意:您可以随意命名文件,重要的是 .conf 扩展名。在此文件中,您需要复制以下代码片段,并粘贴到之前创建的文件中:server { listen 80; server_name your-domain.com; location / { proxy_pass http://localhost:{YOUR_PORT}; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; }}现在只需将 your-domain.com 替换为您注册的域名,将 YOUR_PORT 替换为您的 Node.js 应用程序在 VPS 上监听的端口。注意:要能够为一个 Node.js 应用程序引用多个域名(如 www.example.com 和 example.com),您需要将以下代码添加到文件 /etc/nginx/nginx.conf 中的 http 部分:server_names_hash_bucket_size 64;如果 DNS 更改已传播,您可以将您的 Web 浏览器指向您的域名,您应该看到您的应用程序正在运行,并可以从互联网访问。### 在重新启动时重新启动您的 Node.js 应用程序---当 VPS 重新启动时,Forever 在处理应用程序崩溃等方面表现良好,但是当 VPS 重新启动时会发生什么呢?这就是一个简单的 cronjob 可以防止您的应用程序和用户出现意外的停机的地方。在您的应用程序的主目录中创建一个名为 starter.sh 的文件,并复制以下代码:#!/bin/shif [ $(ps -e -o uid,cmd | grep $UID | grep node | grep -v grep | wc -l | tr -s "\n") -eq 0 ]then export PATH=/usr/local/bin:$PATH forever start --sourceDir /path/to/your/node/app main.js >> /path/to/log.txt 2>&1fi其中 main.js 应替换为您的应用程序的主脚本。此有用的代码片段来自于此处要在每次重新启动时启动此脚本,您需要使用以下命令编辑 crontab:crontab -e并将以下代码附加到此文件@reboot /path/to/starter.sh现在设置您的 starter.sh 文件的绝对路径。提示:导航到您的 starter.sh 文件所在的位置,并使用 pwd 打印当前目录。对于每个域/服务,重复上述步骤。
标签: nginx node.js vim

本文转载自: https://blog.csdn.net/rubys007/article/details/139706326
版权归原作者 白如意i 所有, 如有侵权,请联系我们删除。

“如何在单个VPS上使用nginx、forever和crontab托管多个Node.js应用”的评论:

还没有评论