【问题标题】:Multiple apps from the same server来自同一服务器的多个应用程序
【发布时间】:2011-07-23 01:27:33
【问题描述】:

我习惯于部署 Tomcat 服务器(和其他 J2EE 容器),它们有一个目录,我可以在其中放置 WAR 文件。假设有一个名为 xyz.war 的文件,那么当我访问该服务器时,针对以 /xyz 开头的任何路径执行 GET 操作,该请求将传递给该 war 文件中的应用程序。

现在我想在 node.js 下做一个类似的事情。我有几个应用程序,我希望它们在不同的命名空间中运行(从 JavaScript 和 URL 的角度来看)。这甚至可能吗?

【问题讨论】:

    标签: node.js


    【解决方案1】:

    在 Java 世界中,由于 jvm 相当重量级,我们倾向于在同一个 jvm 进程中部署多个应用程序。 Node.js 更加轻量级,它允许在单独的进程中运行每个节点应用程序。我认为这有几个优点,例如每个进程的隔离(例如,如果有问题的应用程序用完所有堆怎么办)以及重新启动节点应用程序而不影响在同一服务器上运行的其他应用程序的能力。

    要让它们在同一个端口上运行,你可以在它们前面放置 nginx 或 node-http-proxy 之类的东西。如果您需要检测并自动启动新应用程序,您可以编写一个脚本来监控您的“应用程序目录”并为 nginx 生成一些新配置(例如检测新目录“xyz”,将其映射到 nginx 中的 /xyz 下并启动该目录中的节点应用程序)。

    【讨论】:

      【解决方案2】:

      这是可能的,但并不容易。您必须构建自己的框架才能做到这一点。 J2EE 容器提供的一件事是使用单独的类加载器进行隔离。这种隔离将很难建立。但是,如果您忽略隔离安全性,创建某种插件架构,其中 node.js 读取单独目录中的文件应该不会太难。

      【讨论】:

      • Grrr,我害怕那个。让我rephrase.
      猜你喜欢
      • 2013-05-03
      • 1970-01-01
      • 1970-01-01
      • 2015-07-12
      • 1970-01-01
      • 1970-01-01
      • 2019-10-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多