Websphere 未将请求定向到 response.sendRedirect 上的代理服务器
Websphere not directing request to proxy server on response.sendRedirect
我已经在我的 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 解决这个问题?
我假设你正在使用如下
response.sendRedirect(request.getContextPath() +
"/my/main.jsp");
此处 - request.getContextPath 提供代理服务器信息。
作为快速修复,我使用属性文件中的代理服务器值解决了它。
response.sendRedirect("get proxy server name from prop file" +
"/my/main.jsp");
按照以下步骤解决了这个问题。
在 Apache 网络服务器的虚拟主机标记中添加以下内容。您实际需要的是转发用于访问服务器的协议。
虚拟主机 *:443>
RequestHeader 设置 X-Forwarded-Proto "https"
……
/虚拟主机>
有关更多说明,请参阅网站
https://www.nczonline.net/blog/2012/08/08/setting-up-apache-as-a-ssl-front-end-for-play/
- 需要通过管理控制台在 Websphere webcontainer 属性中添加以下属性。
转到应用程序服务器 > server1 > Web 容器 > 自定义属性
添加以下属性
httpsIndicatorHeader -
X-Forwarded-Proto(在网络服务器中请求 header 值设置(在我们的例子中是 https))
com.ibm.ws.webcontainer.extractHostHeaderPort -
true(服从请求端口号)
信任主机header端口 -
true(服从请求端口号)
此设置参考了以下站点
在我们的例子 (Websphere Liberty 21.0.0.9) 中,我们只是在相应的 Apache 虚拟主机配置中添加了几个指令:
- RequestHeader 设置 X-Forwarded-Proto“https”
- ProxyPreserveHost 开启`
这些指令仅在
上的 Apache 2.3.3 有效
中提到
我已经在我的 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 解决这个问题?
我假设你正在使用如下
response.sendRedirect(request.getContextPath() + "/my/main.jsp");
此处 - request.getContextPath 提供代理服务器信息。
作为快速修复,我使用属性文件中的代理服务器值解决了它。
response.sendRedirect("get proxy server name from prop file" + "/my/main.jsp");
按照以下步骤解决了这个问题。
在 Apache 网络服务器的虚拟主机标记中添加以下内容。您实际需要的是转发用于访问服务器的协议。
虚拟主机 *:443> RequestHeader 设置 X-Forwarded-Proto "https" …… /虚拟主机>
有关更多说明,请参阅网站 https://www.nczonline.net/blog/2012/08/08/setting-up-apache-as-a-ssl-front-end-for-play/
- 需要通过管理控制台在 Websphere webcontainer 属性中添加以下属性。 转到应用程序服务器 > server1 > Web 容器 > 自定义属性 添加以下属性
httpsIndicatorHeader - X-Forwarded-Proto(在网络服务器中请求 header 值设置(在我们的例子中是 https))
com.ibm.ws.webcontainer.extractHostHeaderPort - true(服从请求端口号)
信任主机header端口 - true(服从请求端口号)
此设置参考了以下站点
在我们的例子 (Websphere Liberty 21.0.0.9) 中,我们只是在相应的 Apache 虚拟主机配置中添加了几个指令:
- RequestHeader 设置 X-Forwarded-Proto“https”
- ProxyPreserveHost 开启`
这些指令仅在
上的 Apache 2.3.3 有效 中提到