gpt4 book ai didi

java - 使用反向代理时如何设置 Java Web 应用程序的上下文根

转载 作者:行者123 更新时间:2023-12-01 05:32:47 25 4
gpt4 key购买 nike

  1. 我在apache中使用mod_jk并在tomcat中配置虚拟主机的老方法在JSP文件中,我引用CSS如下

    /<%=request.getContextPath()%>/css/styles.css

当主页链接设置为

/<%=request.getContextPath()%>/

所以当我在 apache 中使用 mod_jk 使用 ajp 与 tomcat 一起工作时,效果很好;

  1. 当我尝试如下配置反向代理时

ProxyPass/http://localhost:800/mywebapp

ProxyPassReverse/http://localhost:800/mywebapp

主页可以正常检索,但 css 请求变得 http://mydomain.com/mywebapp/mywebapp/css/style.css所以无法正确检索css文件;

  1. 我认为一种可能的方法是始终使用相对路径,例如 ./style.css 或 ../style.cssA。由于页眉/页脚是共享的,并且主页与详情页处于不同的级别,因此使用相对路径不方便,因为它们处于不同的级别b.不过,我认为主页链接必须是/<%=request.getContextPath()%>/

所以我想知道在 java web 中设置 contextroot 并在反向代理中也能正常工作的方法是什么?

非常感谢

最佳答案

据我所知,您的应用程序服务器(Tomcat)无法意识到反向代理的存在。一般来说,可以通过任意数量的反向代理或直接通过浏览器进行联系。通常使用网络配置来限制这一点,而不是 HTTP 或 Java。

因此,您必须准确地依赖相对 URL 才能使您的应用程序正常运行。

当我必须处理反向代理存在时(几乎总是由于 SSO 架构),我嵌入一个“junction”配置字符串项(代理中用于映射应用程序的 URL 部分)并在仅在需要构建绝对 URL 的地方。

关于java - 使用反向代理时如何设置 Java Web 应用程序的上下文根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8708009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com