【发布时间】:2011-08-29 13:05:16
【问题描述】:
我在一个可以从互联网(外部)和公司内部(内部)访问的环境中的 Servlet 容器(端口 8080)上运行 WebApplication,例如
http://external.foo.bar/MyApplication
http://internal.foo.bar/MyApplication
传入的(外部/内部)请求使用带有 mod_proxy 的 apache http 服务器重定向到 servlet 容器。配置如下:
ProxyPass /MyApplication http://localhost:8080/MyApplication retry=1 acquire=3000 timeout=600 Keepalive=On
ProxyPassReverse /MyApplication http://localhost:8080/MyApplication
我现在面临一些 MyApplication 响应依赖于原始请求 URL 的问题。具体:一个 WSDL 文档将提供一个具有 schemaLocation="<RequestUrl>?xsd=MyApplication.xsd" 元素的元素。
以我当前的配置,它总是看起来像
<xs:import namespace="..." schemaLocation="http://localhost:8080/MyApplication?xsd=MyApplication.xsd"/>
但应该是的
External Request: <xs:import namespace="..." schemaLocation="http://external.foo.bar/MyApplication?xsd=MyApplication.xsd"/>
Internal Request: <xs:import namespace="..." schemaLocation="http://internal.foo.bar/MyApplication?xsd=MyApplication.xsd"/>
我想这是一个常见的要求。但由于我不是 apache http 服务器及其模块配置方面的专家,如果有人可以提供一些(详细的)帮助,我会很高兴。
提前致谢!
【问题讨论】:
标签: apache web-applications mod-rewrite redirect mod-proxy