gpt4 book ai didi

apache - 在 mod_proxy 重定向上保留原始请求 URL

转载 作者:行者123 更新时间:2023-12-03 11:38:36 27 4
gpt4 key购买 nike

我在可以从互联网(外部)和公司内部(内部)访问的环境中的 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 >= 2.0.31,那么您可以尝试设置 ProxyPreserveHost指令如所述here .

这应该通过 mod_proxy 将原始 Host header 传递到您的应用程序中,并且通常请求 URL 将使用 Host header 在那里重建(在您的 Servlet 容器中),因此应该使用“之前”中的主机和路径信息来构建模式位置代理。

(为了完整起见,也在这里发布)

关于apache - 在 mod_proxy 重定向上保留原始请求 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6070335/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com