Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js在线应用程序与intranet DB_Node.js_Mongodb_Intranet - Fatal编程技术网

Node.js在线应用程序与intranet DB

Node.js在线应用程序与intranet DB,node.js,mongodb,intranet,Node.js,Mongodb,Intranet,我想要构建的是一个在线应用程序,它由不同的组使用,每个组都有自己的内部网。现在,由于愚蠢的安全策略,数据不能位于内部网之外。你将如何构建一个仍然在线的应用程序,这样你就可以一次向所有人推送更新,但每个内部网的服务器上都有一个DB? 我最初的计划是使用Node.js和MongoDB。我现在面临一个类似的问题,所以这里是我对它的看法,不是真正的mongo或Node-specific 在每个客户机的内部网上放置一个db和一个简单的restful服务器。服务器可以完全相同 放置一个可从internet访

我想要构建的是一个在线应用程序,它由不同的组使用,每个组都有自己的内部网。现在,由于愚蠢的安全策略,数据不能位于内部网之外。你将如何构建一个仍然在线的应用程序,这样你就可以一次向所有人推送更新,但每个内部网的服务器上都有一个DB?
我最初的计划是使用Node.js和MongoDB。

我现在面临一个类似的问题,所以这里是我对它的看法,不是真正的mongo或Node-specific

  • 在每个客户机的内部网上放置一个db和一个简单的restful服务器。服务器可以完全相同
  • 放置一个可从internet访问的路由门面,该门面根据url将请求重定向到相应的服务器,即:
    http://facade/server/resource
    成为对
    http://server/resouce
  • 配置facade,以便a请求
    http://facade/resource
    转到每台服务器,检索结果并以某种聚合形式返回所有结果
    显然还有更多的细节需要考虑,比如权限(每个人都可以发布到每台服务器吗?如果不能,谁可以?),但总体思路是这样的。

    如果你的数据库真的必须在现场,而你的应用程序真的必须在场外,那么你唯一的选择可能就是建立从你的应用程序到现场数据库的安全连接,并假装它是本地托管到应用程序的。这可能/可能不会违反安全策略。理论上,你可以很好地锁定它,在两个网络之间使用vpn。但这并不适合心脏虚弱的人,性能会受到影响,而且它确实存在安全问题。这也意味着每个站点都要做一些工作


    如果你希望它“在线”的唯一原因是你所说的推送更新,那么你最好在本地安装该应用程序,并让它轮询到中央服务器以获取有关新版本的通知,将更新下载到自身,然后自动安装。一旦你创建了这个,一个新的安装不需要新的工作

    为什么每个内部网都应该有一个数据库。如果数据库位于任何一个intranet上,并且其他人可以通过internet访问,是否可以。这是因为安全策略,实体不允许在其intranet之外存储数据。不幸的是,每个内联网都需要自己的本地数据库。似乎解决方案不应该这样实现。我会改变政策。创建一个解决方案来解决策略是一个难得的好方法。不幸的是,在这种情况下,不可能改变策略。我正在研究这种方法,作为在每个intranet上部署应用程序的替代方法。是的,我也在考虑同样的问题。权限对我来说不是问题,因为每个内部网都是独立的。谢谢你的回答!如果我只选择内部网的“方式”,你认为使用git从中央回购中获取更新是一个好主意吗?可以,但任何一种可以轮询、下载和“安装”(在你的情况下,可能只是复制)的技术都可以。另一件事,你可能要考虑的是,如果有任何其他任务在升级过程中(例如连接到蒙戈和运行一些升级脚本)。在这种情况下,你可能想把这个逻辑应用到你的应用程序中(即在启动时检查一个标志,看看你是否已经完成了工作),或者考虑一些更复杂的东西(例如,一个独立的代理),它安装在内联网上,为你管理这一切。我先从最简单的事情开始。