ProxyPassReverse

我们的IT正在尝试configuration一个新的apache / jboss / apj安装程序。 当我浏览到http://domain.com/jboss/test.jsp

并回request.getRequestURL()我得到
http://domain.com/test.jsp (没有jboss)我部署的应用程序遇到了很多404的正因为如此。

这就是我们的IT部门所设置的ProxyPassReverse。

 <Location /jboss> ProxyPass balancer://cluster stickysession=JSESSIONID ProxyPassReverse https://domain.com/jboss/ </Location> 

不应将指令设置为:

 <Location /jboss> ProxyPass balancer://cluster stickysession=JSESSIONID ProxyPassReverse /jboss https://domain.com/jboss/ </Location> 

编辑当我使用response.sendRedirect时,问题会出现

在我们使用的旧服务器上
response.sendRedirect("login.jsp?message=You have successfully logged off.");

让事情与我必须重新编码为新的代理工作
response.sendRedirect("/jboss/AppName/login.jsp?message=You have successfully logged off.");

我的应用程序不再是可移植的或可重复使用后者的语法。 该行在我的框架servlet注销,并由我的所有应用程序共享。

错误(在Apache中,不是jboss)
response.sendRedirect("login.jsp?message=You have successfully logged off."); 文件不存在:/ folder1 / folder2 / AppNamelogin.jsp
请注意我的appname和login.jsp之间没有“/”

错误(在Apache中,不是jboss)
response.sendRedirect("/login.jsp?message=You have successfully logged off."); 文件不存在:/folder1/folder2/login.jsp注意AppName缺失

不; 第一个参数在<Location>块中使用时是隐含的。 这个用法是正确的。

ProxyPassReverse仅用于在30xredirect响应上转换Location标题; 根据你所描述的,这可能不是问题。

您应该明确说明path设置为什么。 如果我理解你的话,请求应该发送到domain.com/jboss/test.jsp而不是当前的domain.com/test.jsp ,对吧? 如果是这样的话,那就改变..

 ProxyPass balancer://cluster stickysession=JSESSIONID 

..至..

 ProxyPass balancer://cluster/jboss stickysession=JSESSIONID 

编辑

留下上面的地方,但提供的新信息明确表明,问题确实与ProxyPassReversebalancerconfiguration可能在BalancerMemberconfiguration/jbosspath。

更改..

 ProxyPassReverse https://domain.com/jboss/ 

..至..

 ProxyPassReverse https://domain.com/jboss 

Location转换发生时,斜杠被剥离,由于<Location /jboss>ProxyPassReverse之间不平衡的尾部斜杠,发送客户端redirect到/jbossappname而不是/jboss/appname