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

时间:2012-01-03 04:42:45

标签: java apache reverse-proxy contextroot

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

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

  2. ,主页链接设置为

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

    所以当我在apache中使用mod_jk使用ajp处理tomcat时,这个工作正常;

    1. 当我尝试配置反向代理时,如下所示
    2. ProxyPass / http://localhost:800/mywebapp

      ProxyPassReverse / http://localhost:800/mywebapp

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

      1. 我认为一种可能的方法是始终使用相对路径,如./style.css或../style.css 一个。由于页眉/页脚是共享的,并且主页与详细页面处于不同的级别,因此它们使用相对路径是不方便的,因为它们处于不同的级别 湾仍然,我认为主页链接必须是/&lt;%= request.getContextPath()%&gt; /
      2. 所以我想知道在java web中设置contextroot的方法是什么,并且反向代理也可以正常工作?

        很多

1 个答案:

答案 0 :(得分:0)

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

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

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