如何为不同的客户部署同一node.js express API的多个实例
我们目前为3个不同的客户部署了相同的node.js express API。它们都有自己的config.env文件,使用不同的端口、不同的数据库和不同的日志文件。它们还通过Apache拥有各自的反向代理 除此之外,所有后端源代码和node_模块都是相同的。 这意味着,每当我们需要更新后端时,我们都必须重新部署(即rsync)每个实例。它可以工作,但效率不高,特别是当我们增加越来越多的客户时 是否有一种方法可以将源代码部署在一个模板API中,并让每个实例指向它(除了.env文件)?我们可以将所有内容都符号链接到此模板(除了.env文件),但是有很多文件,这似乎没有太多的好处。。想知道是否有人已经想出了更好的解决方案来做这样的事情如何为不同的客户部署同一node.js express API的多个实例,node.js,api,express,deployment,Node.js,Api,Express,Deployment,我们目前为3个不同的客户部署了相同的node.js express API。它们都有自己的config.env文件,使用不同的端口、不同的数据库和不同的日志文件。它们还通过Apache拥有各自的反向代理 除此之外,所有后端源代码和node_模块都是相同的。 这意味着,每当我们需要更新后端时,我们都必须重新部署(即rsync)每个实例。它可以工作,但效率不高,特别是当我们增加越来越多的客户时 是否有一种方法可以将源代码部署在一个模板API中,并让每个实例指向它(除了.env文件)?我们可以将所有内
谢谢。以您当前的方式实例化API有一些可扩展性优势—确保每个客户端都有一块计算、磁盘和内存将减轻单点故障、瓶颈和资源消耗。这通常会涉及一些额外的成本(但并非总是如此) 您的部署指令可以变得更加精简和自动化,以消除同步所有实例时遇到的一些挫折 将API分解为服务 您可以考虑将API分解为独立和封装的服务,这些服务可以跨多个更精简的实例使用——这意味着单个部署nano或micro服务可以(通常)被冰冷的客户端锁定实例使用。) 作为数据的客户端
根据您的数据保护和完整性需要,一种解决方案是将客户机/客户数据从文件移动到数据库,让所有客户使用相同的硬API接口,通过身份验证层加载他们的数据(并在数据库中存储任何客户机/客户配置)。然后您可以为每个人部署一次 我最终是如何做到这一点的: