0

我们的 IT 正在尝试配置新的 apache/jboss/apj 设置。

当我浏览到 http://domain.com/jboss/test.jsp 和 System.out.printlnrequest.getRequestURL()

我得到http://domain.com/test.jsp (没有 jboss)

因此,我的应用程序遇到了很多 404。

IT 部门表示,Jboss 因为代理,所以没有 URL 的 /jboss/ 部分的概念。他们是正确配置还是我需要更改我的代码。对我来说,如果我必须硬编码 url 路径,我的代码是不可移植的。

编辑-

这是他们告诉我的:

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

本文支持我的问题 https://sosiouxme.wordpress.com/2010/08/18/fixing-apache-httpd-reverse-proxy-redirect-rewrites/

Edit2 在我们的旧服务器上,在几个应用程序使用的登录框架 servlet 中,我有 response.sendRedirect("login.jsp?message=您已成功注销。");

为了让新代理能够正常工作,我必须将其重新编码为 response.sendRedirect("/jboss/AppName/login.jsp?message=您已成功注销。");

我失去了后一种语法的可移植性和可重用性。

注意的错误(在 Apache,而不是 jboss 中)
response.sendRedirect("login.jsp?message=You have successfully logged off.");
File does not exist: /WEB/wwwssl/AppNamelogin.jsp
在我的 appname 和 login.jsp 之间没有“/”

注意 AppName的错误(在 Apache 中,而不是 jboss 中)
response.sendRedirect("/login.jsp?message=You have successfully logged off.");
File does not exist: /WEB/wwwssl/login.jsp
丢失

4

1 回答 1

1

请注意,您提到的文章使用mod_proxy_html( ProxyHTMLURLMap ProxyHTMLURLMap / /ajp/nocluster/),它将修复链接以使用正确的路径前缀。这不是mod_proxyApache Httpd 提供的默认模块的一部分。

而不是将这些指令放在一个<Location>块中,使用单行语法可能会正确地转发路径:

ProxyPass /jboss balancer://cluster stickysession=JSESSIONID 
于 2012-07-26T19:44:57.107 回答