我在访问反向代理(使用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?
答案 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"