为Web CRM部署Nodejs服务器进行生产

时间:2019-02-25 10:54:22

标签: node.js express

我正在寻找要在本地服务器/计算机上部署nodejs express应用程序的任何方法或教程。这将用于生产环境。我现在所读的有关诸如zenit,localtunnel,forever,pm2之类的解决方案的类似内容都没有推荐用于生产环境。这个想法是建立一个没有托管的公共网站。我希望该方法可以同时保持一个以上的节点/网络处于活动状态。

1 个答案:

答案 0 :(得分:1)

当人们说不建议将某个组件用于生产时,这并不意味着它不稳定。在大多数情况下,这意味着它不能完全考虑生产部署的所有方面:

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

如果您尝试构建具有严格要求(每秒请求数,媒体流等)的解决方案,则还应在问题中添加具体说明。如果不是这种情况,您只需要安装一个基本设置即可运行您的配置并解决出现的瓶颈。现在不要尝试构建理论上正确的解决方案。

几个例子:

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

  • 在您喜欢的/可接受的Linux发行版上安装Git +(Node.js和NPM)+(永久或同等版本)+数据库(例如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也将填补此漏洞)