我在访问它部署在(使用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的背后反向代理?
因为我可以回答我自己的问题,这里的问题是什么:
在服务器端,portlet和JSP的WebSphere Portal中使用request.getServerHost()
和request.getServerPort()
为了使这些方法背后的反向代理(其发送工作Host:
头)。 我不得不添加:
ProxyPreserveHost On
到apache配置和:
com.ibm.ws.webcontainer.extractHostHeaderPort = true
trusthostheaderport = true
附加属性Web容器在IBM控制台: WebSphere application servers -> WebSphere_Portal -> Web Container Settings -> Web Container -> Custom properties
。
这些属性描述了这里 。
我得到了同样的问题,前几天,并最终选择了Apache的mod_substitute更改这些网址是这样的:
Substitute "s|http ://backend-server:10039/|/|i"