反向代理密码

反向代理密码

我们的 IT 部门正在尝试配置新的 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 中,用于注销,并由我的所有应用程序共享。


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

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

答案1

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

ProxyPassReverse仅用于翻译重定向响应Location的标题30x;考虑到您所描述的情况,这可能不是问题。

你应该明确说明路径应该设置为。如果我理解正确的话,请求应该发送到domain.com/jboss/test.jsp而不是当前的domain.com/test.jsp,对吗?如果是这样,那么只需更改..

ProxyPass balancer://cluster stickysession=JSESSIONID 

..到..

ProxyPass balancer://cluster/jboss stickysession=JSESSIONID

编辑

保留上述内容,但呈现的新信息清楚地表明问题确实出在ProxyPassReverse-balancer配置可能/jbossBalancerMember配置中存在路径。

改变..

ProxyPassReverse https://domain.com/jboss/

..到..

ProxyPassReverse https://domain.com/jboss

由于和之间的尾随斜线不平衡,在翻译过程中斜线会被删除Location,并向客户端发送重定向到/jbossappname而不是。/jboss/appname<Location /jboss>ProxyPassReverse

相关内容