Websphere没有将响应请求发送到response.sendRedirect上的代理服务器

时间:2015-11-09 06:26:54

标签: java websphere reverse-proxy

我已经在我的websphere 8应用服务器前面配置了apache反向代理。我已经设置了通用的JVM参数-Dhttps.proxyHost和-Dhttps.proxyPort,但是对response.sendRedirect的请求没有被定向到peoxy服务器。它针对defualt端口9080。 如何解决这个问题? 我已经在Tomcat& Jboss通过修改我的连接器端口如下

连接器名称=" http"协议=" HTTP / 1.1"插座结合=" HTTP"方案=" HTTPS"代理名称=" 192.168.1.1"代理端口=" 443"安全="真"

如何为Websphere解决此问题?

2 个答案:

答案 0 :(得分:1)

我假设您使用如下

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

此处 - request.getContextPath提供代理服务器信息。

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

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

答案 1 :(得分:0)

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

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

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

  2. 有关更多说明,请参阅网站 http://github.com/cbeust/testng

    1. 需要通过管理控制台在Websphere webcontainer属性中添加以下属性。 转到应用程序服务器> server1> Web容器>自定义属性 添加以下属性
    2. httpsIndicatorHeader - X-Forwarded-Proto(Web服务器中设置的请求标头值(在我们的例子中是https))

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

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

      为此设置提及以下网站

      https://www.nczonline.net/blog/2012/08/08/setting-up-apache-as-a-ssl-front-end-for-play/

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