我正在构建一个nodejs应用程序我想在客户的各种设置下提供。我希望我的客户在我的应用程序之上构建他们的网站,因此: - 应用程序可以通过域" A.com"和" B.com"使用配置" X"该应用程序,而#34; C.com"使用" Y"等等 - 我正在考虑使用kubernetes和dockers容器来隔离版本" X"," Y"我的应用程序等等 - 我也在考虑使用nginx进行反向代理
每个域都将在mongodb集合中包含其不同的文档。因为我需要一种方法来检索正确的数据,所以我给每个域一个与其文档匹配的唯一令牌。所有令牌也保存在mongodb中,并将在我的(nodejs)服务器上启动或动态更新。令牌将保存在" app.locals"变量: - 我正在考虑建立一个中间件,从每个请求(req.hostname)抓取域并获取相应的令牌
n
检索并分配令牌后," domainTokens"看起来像是:
// set locals
app.locals.domainTokens = {};
当新客户注册时,代码将被动态分配给他们的域名(容器互相交谈,对吧?)。
所以基本上,当一个请求是针对" A.com"时,我的中间件设置了"令牌"以便mongodb文件与" A.com"可以找到并发送回客户端运行版本" X"我的应用程序(nginx)。
您如何看待这种方法?它不安全吗?一个不好的做法?你有更好的建议去实施吗?我最好每个域使用一个容器吗? (我必须监视数百个nodejs实例而不是3或4个)
另外,是否可以动态配置Nginx服务器?