作为升级遗留 Java 应用程序(托管在 Weblogic 集群上)的一部分,该应用程序的一部分将被单页应用程序 (REACT) 替换,通过 API 调用包含已迁移后端功能的各种服务。目前,直到所有 UI 依赖项都从遗留应用程序中移植出来,REACT SPA 仍将托管在 JSP 页面中(一些常见的 JSP 代码尚未移植,因此将出现在托管反应应用程序的 JSP 页面上)。
托管此设置的基础架构当前是 Apache 服务器,根据需要路由到 Weblogic 集群或更新的服务。代理到 weblogic 集群之前很简单,因为所有 *.jsp 页面都通过一个简单的 weblogic 插件块路由到集群:
<IfModule mod_weblogic.c>
WebLogicCluster server1:port,server2:port
MatchExpression *.jsp
</IfModule>
但是,对于新的 SPA,我还需要一整套路由来代理到包含我的 SPA 的单个 .jsp 页面。如果我的目标只是通过路径代理,我可以使用 apache weblogic 插件轻松解决:
<Location /newSection/>
WLSRequest On
WebLogicCluster server1:port,server2:port
PathTrim /newSection/
PathPrepend SPA.jsp
DefaultFileName SPA.jsp
</Location>
但是,这仅适用于基本 /newSection/ url,就像 url 一样
http://host/newSection/spa-route
被代理
http://host/SPA.jsp/spa-route
这显然是无效的。
我为 weblogic 插件尝试的任何 PathTrim、PathPrepend 或其他任何东西都无法解决我试图通过路径代理到单个 URI 的问题(一切都需要代理到http://host/SPA.jsp,SPA 路由器处理其余的部分)
我目前正在尝试只使用 mod_rewrite 和 mod_proxy,因为 RewriteRule [P] 允许我代理到集群上的单个 URI(来自代理平衡器的集群 IP)。然而,这设置起来要复杂得多(仍在尝试),我必须自己实现会话粘性之类的东西。
如何使用 mod_weblogic 插件代理到特定 URI 的解决方案会很棒,但是如何使用 mod_rewrite、mod_proxy 和/或 mod_proxy_balancer 来实现此代理到 weblogic 集群上的单个 URI 的示例将非常有帮助,因为好。