Websphere 未在response.sendRedirect 上将请求定向到代理服务器

问题描述 投票:0回答:4

我已经在我的 websphere 8 应用程序服务器前面配置了安全的 apache 反向代理。我已经设置了通用 JVM 参数 -Dhttps.proxyHost 和 -Dhttps.proxyPort 但 response.sendRedirect 上的请求不会定向到 peoxy 服务器。它定向到默认端口 9080。 如何解决这个问题? 我已经通过修改我的连接器端口解决了 Tomcat 和 Jboss 上的这个问题,如下所示

连接器名称=“http”协议=“HTTP/1.1”套接字绑定=“http”方案=“https”代理名称=“192.168.1.1”代理端口=“443”安全=“true”

如何为 Websphere 解决此问题?

java websphere reverse-proxy
4个回答
2
投票

按照以下步骤解决了这个问题。

  1. 在 Apache Web 服务器的虚拟主机标签中添加以下内容。您实际需要的是沿着用于访问服务器的协议进行转发。

    虚拟主机*:443> RequestHeader 设置 X-Forwarded-Proto "https" …… /虚拟主机>

更多说明请参阅网站 https://www.nczonline.net/blog/2012/08/08/setting-up-apache-as-a-ssl-front-end-for-play/

  1. 以下属性需要通过管理控制台添加到Websphere Web容器属性中。 转到应用程序服务器 > server1 > Web 容器 > 自定义属性 添加以下属性

httpsIndicatorHeader - X-Forwarded-Proto(在 Web 服务器中设置的请求标头值(在我们的示例中为 https))

com.ibm.ws.webcontainer.extractHostHeaderPort - true(服从请求端口号)

trusthostheaderport - true(服从请求端口号)

参考以下网站进行此设置

http://www-01.ibm.com/support/docview.wss?uid=swg21569667

http://129.33.205.81/support/knowledgecenter/SSEQTP_8.5.5/com.ibm.websphere.base.iseries.doc/ae/rweb_custom_props.html


1
投票

我假设你正在使用如下

response.sendRedirect(request.getContextPath() + “/my/main.jsp”);

这里 - request.getContextPath 提供代理服务器信息。

作为快速修复,我使用属性文件中的代理服务器值解决了该问题。

response.sendRedirect("从 prop 文件中获取代理服务器名称" + “/my/main.jsp”);


0
投票

在我们的示例中(Websphere Liberty 21.0.0.9),我们只是在相应的 Apache 虚拟主机配置中添加了几个指令:

  • RequestHeader 设置 X-Forwarded-Proto“https”
  • ProxyPreserveHost 开启`

这些指令仅从 Apache 2.3.3 起有效

@Darshan Shah 在下面提到的文章中提到了两者


0
投票

在我们的案例中,Liberty 位于 IBM i 集成 Web 服务 (IWS) 后面并在不同端口上运行,因此我们没有添加选项

com.ibm.ws.webcontainer.extractHostHeaderPort -true
trusthostheaderport - true

基于 Open Liberty 文档,我们唯一的选择是在反向代理处添加以下标头

X-Forwarded-Proto: https
X-Forwarded-Port: 443

以及将其设置为在

X-Forwarded-Host
标头中保留主机。这是使用 Apache mod-proxy 上的
ProxyPreserveHost On
实现的,但其他人可能会默认这样做。

Apache mod 代理配置

RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
ProxyPreserveHost On
© www.soinside.com 2019 - 2024. All rights reserved.