【问题标题】:Run JSF behind reverse proxy with additional subpath在带有附加子路径的反向代理后面运行 JSF
【发布时间】:2020-10-15 14:58:22
【问题描述】:

大多数已经给出的答案是针对您想要隐藏应用程序路径的情况。我们的情况是只有以“http://www.example.com/ourpath”开头的请求被转发到我们的 apache

这意味着我们的 apache 重写

    ProxyPass "/ourpath/MyApp"  "ajp://internalcontainer:8009/MyApp"
    ProxyPassReverse "/ourpath/MyApp"  "ajp://internalcontainer:8009/MyApp"

应用程序本身现在可以访问了,但是 jsf 会构建类似的 url

http://www.example.com/MyApp/javax.faces.resource/jquery/jquery.js.xhtml?ln=primefaces&v=6.2

并省略了“我们的路径”部分。知道我们如何影响 tomcat 的上下文路径信息吗?

【问题讨论】:

  • 我不认为你可以。但是你可以在 Apache 上创建一个重写规则来添加额外的路径
  • @SimonMartinelli 但我需要删除多余的路径?`
  • 不,你必须在响应中添加它?
  • @SimonMartinelli 好的,但是重写规则如何更改 html 页面中的 uri?
  • 对不起。你说的对!我只是忘记了这是 JSF

标签: apache tomcat jsf reverse-proxy


【解决方案1】:

好的,我有一个解决方案,内部和外部路径必须相同,否则没有可靠的解决方案。

ProxyPass "/ourpath/MyApp"  "ajp://brainyoo2web:8009/ourpath/MyApp"
ProxyPassReverse "/ourpath/MyApp"  "ajp://brainyoo2web:8009/ourpath/MyApp"

并确保应用部署在同一路径:

COPY --from=webbuild /myapp/target/MyApp /usr/local/tomcat/webapps/ourpath#MyApp

或者创建一个名为ourpath#MyApp.war的war文件

#告诉tomcat的url中有一个子路径

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-03-24
  • 2019-02-16
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多