2

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

我的 Apache 配置:

ProxyPassReverseCookieDomain backend-server proxy-server

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

问题是,一些生成的资源包含针对 backend-server:10039 的绝对 URI ......

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

4

2 回答 2

4

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

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

ProxyPreserveHost On

到 apache 配置和:

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

IBM 控制台中 Web 容器的附加属性:WebSphere application servers -> WebSphere_Portal -> Web Container Settings -> Web Container -> Custom properties.

此处描述了这些属性。

于 2012-05-17T11:48:32.727 回答
0

几天前我遇到了同样的问题,最终选择了 apache mod_substitute 来更改这些 url,如下所示:
Substitute "s|http ://backend-server:10039/|/|i"

于 2015-01-15T09:01:00.583 回答