反向代理和getServerPort()背后的WebSphere Portal

时间:2012-05-17 11:44:13

标签: apache websphere reverse-proxy mod-proxy websphere-portal

我在访问反向代理(使用Apache)后部署的WebSphere Portal时遇到问题。问题是,在检查浏览器发出的HTTP请求时,有些请求是针对代理的,有些是直接针对WebSphere Portal。

我的Apache配置:

ProxyPassReverseCookieDomain backend-server proxy-server

ProxyPass / http://backend-server:10039/
ProxyPassReverse / http://backend-server:10039/

问题是,一些生成的资源包含针对后端服务器的绝对URI:10039 ...

我还应该配置什么才能正确访问反向代理后面的WebSphere Portal?

2 个答案:

答案 0 :(得分:4)

因为我可以回答我自己的问题,这就是问题所在:

在服务器端,WebSphere Portal中的portlet和JSP使用request.getServerHost()request.getServerPort()。使这些方法在反向代理(发送Host:标头)后面工作。我不得不补充道:

ProxyPreserveHost On

到apache配置并且:

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

IBM Console中Web容器的其他属性:WebSphere application servers -> WebSphere_Portal -> Web Container Settings -> Web Container -> Custom properties

这些属性描述为here

答案 1 :(得分:0)

前几天我遇到了同样的问题,并最终选择了apache mod_substitute来改变这些网址:     Substitute "s|http ://backend-server:10039/|/|i"