基于访问域的Node.js数据库配置

时间:2019-05-22 12:21:52

标签: node.js architecture web-architecture

我有两个域abc.comxyz.com指向同一个NodeJS服务器。基于域,我想加载将对该域保持不变的配置,例如,我要连接到xyz.comDatabase1要连接到abc.com。 / p>

我该怎么做?甚至有可能或建议这样做吗?

我首先通过从Database2获取主机名来在第一个请求上加载配置。有更好的方法吗?

Architecture

1 个答案:

答案 0 :(得分:1)

多种策略-

1。多次部署相同的代码,但部署在不同的端口上。

您的反向代理将请求发送到正确的服务器。我目前通过在同一vps上托管多个幽灵博客来实现此目的。一个在端口3000上运行,另一个在3010上运行。

优点-设置不那么脆弱,扩展更容易,应用程序无需了解操作环境。如果一个域受到攻击,则另一个域不会自动造成人员伤亡。

缺点-在资源受限的环境中可能无法实现。部署可能涉及重复的工作。

2。读取主机名

如果功能集几乎相同,但只有域名更改,则为不错的选择。您按照主机名的说明读取配置文件。

优点-易于部署,是资源受限环境的绝佳选择。

缺点-不必要的紧密耦合,如果服务器发生错误,所有域都将不可用,扩展可能会成为问题。

就个人而言,除非代码要求取决于主机名,否则我更喜欢部署在不同的端口上。如果您只是在构建一个产品,该产品的URL中需要存在一些唯一标识符,例如mycompany.slack.com,那么在dns中使用子域可能是一个更好的主意。