【问题标题】:Deploy a nodejs server for web CRM for production为生产的 Web CRM 部署 nodejs 服务器
【发布时间】:2019-07-18 18:18:03
【问题描述】:

我正在寻找在本地服务器/计算机上部署 nodejs express 应用程序的任何方法或教程。这将用于生产环境。我所读到的有关 zenit now、localtunnel、forever、pm2 和类似解决方案的所有信息都是不建议将它们用于生产环境。这个想法是有一个没有托管的公共网络。我需要该方法允许同时保持多个节点/网络处于活动状态。

【问题讨论】:

  • 本地服务器/计算机是指您的机器将充当服务器还是什么?
  • 是的,就是这样。

标签: node.js express


【解决方案1】:

当人们说不推荐用于生产的组件时,并不意味着它不稳定。大多数情况下,这意味着它不是一个全面考虑生产部署所有方面的解决方案:

  • 可扩展性
  • 故障转移
  • 安全
  • 可配置性
  • 自动化
  • 等

如果您正在尝试构建具有精确要求(每秒请求数、媒体流等)的解决方案,您也应该在问题中发布以使其具体化。如果不是这种情况,您只需要安装一个基本设置来运行您的配置并修复出现的瓶颈。现在不要试图构建理论上正确的解决方案。

几个例子:

经典设置(适合自己动手部署)

  • 在您最喜欢/接受的 Linux 发行版上安装 Git +(Node.js 和 NPM)+(Forever 或等效)+您的数据库(例如 MongoDB)+(NGINX 或 HAProxy)
  • 将每个 Node.js 应用程序克隆到自己的目录中
  • 安装 cronjobs 以进行基本监控和维护
  • 添加脚本以根据已删除/添加的 Node.js 应用程序动态删除/添加 NGINX Web 服务器配置

更现代的设置(适用于 AWS/GCE 部署,但也可以在本地使用 skaffold 等工具)

  • 在几台机器上安装 Kubernetes 集群
  • 准备一个与所有 Node.js 应用程序匹配的基础 Docker 容器映像
  • 如果需要,向每个 Node.js 应用程序添加一个 Dockerfile,以便基于基本 Docker 容器映像为每个应用程序构建一个 Docker 映像
  • 为您的每个 Node.js 应用程序添加 new deployment
  • Kubernetes 将为您做“保持活动”
  • 填写您的服务器网络(DNS、IP、端口)和 Kubernetes 提供给您的 IP 之间的管道(NGINX 或 HAProxy 也会填补这个漏洞)

【讨论】:

  • 我会研究这两种情况。非常清晰的解决方案。非常感谢你
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-05
  • 2012-01-13
  • 2013-12-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多