目前我们运行一个简单的 Apache 反向代理来向前端用户隐藏我们的内部主机名:
ProxyPass /webapp https://webserver.internal:443/webapp
ProxyPassReverse /webapp https://webserver.internal:443/webapp
在 webserver.internal apache 实例上,我们有:
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
...
proxyName="companysite.com"
proxyPort="443"
...
/>
用户将通过
访问我们的网络应用程序https://companysite.com:443/webapp/abc?wdsl
当我们将 URL 返还给用户时,URL 如下:
https://webserver.internal:443/webapp/abc.xsd
呈现为:
https://companysite.com:443/webapp/abc.xsd
自由下的等效设置是什么?我无法在 httpEndPoint 属性中找到任何相关内容。
谢谢!
WebSphere 使用私有标头字段 $WSRA 和 $WSRP 来形成自引用 URL(分别为远程地址和远程端口)。
这些是由 WebSphere 感知的代理服务器设置的,包括在 Apache 中运行的“WAS WebServer 插件”。也可以在通用代理服务器中手动设置变量。
基于 在代理服务器后面使用 Liberty 的 Liberty 文档,这是使用
X-Forwarded-*
标头进行处理的。
可以配置代理或负载均衡器来提供 Forwarded 或 X-Forwarded-* 请求标头。 WebSphere Liberty 将仅使用转发的“for”(“for”参数可以选择包含端口)、“host”和“proto”参数,或者 X-Forwarded-For、X-Forwarded-Port、X-Forwarded- Host 和 X-Forwarded-Proto 标头。请注意,未使用 Forwarded“by” 参数或 X-Forwarded-By 标头。
适合您情况的 Apache 示例
ProxyPreserveHost On
X-Forwarded-Proto: https
X-Forwarded-Port: 443
ProxyPreserveHost On
正在供应 X-Forwarded-Host: companysite.com
- 相当于 proxyName="companysite.com"