Http 反向代理背后的WebDAV

Http 反向代理背后的WebDAV,http,apache2,reverse-proxy,webdav,mod-proxy,Http,Apache2,Reverse Proxy,Webdav,Mod Proxy,我有两台服务器。一个反向代理位于web上,另一个位于服务WebDAV的专用链接上 Booth服务器是apachehttpdv2 在委托书上,我有: ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass /repo/ http : //share.local/repo/ ProxyPa

我有两台服务器。一个反向代理位于web上,另一个位于服务WebDAV的专用链接上

Booth服务器是apachehttpdv2

在委托书上,我有:

ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass /repo/ http : //share.local/repo/ ProxyPassReverse /repo/ http : //share.local/repo/ 代理请求关闭 命令拒绝,允许 通融 ProxyPass/repo/http://share.local/repo/ ProxyPassReverse/repo/http://share.local/repo/ 在dav服务器上,我有:

<Location /repo/> DAV on Order allow,deny allow from all </Location> 达文 命令允许,拒绝 通融 反向代理通过https访问,私有服务器通过http访问。 问题就在这里

只读命令工作正常。但是当我想移动某个东西时,我得到了
502坏网关
。 原因是反向代理没有在扩展dav请求中重写url

源URL位于标题内,并正确转换为
http://share.local/file1
。 目标URL位于我不理解的某个xml片段中,并且停留在
https://example.com/file1
:(

有没有一种标准的方法可以让apache正确地转换请求


谢谢你的努力。

嗯,找到了答案。总是一样:)

我在“专用服务器”配置文件中添加了下一行:

LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so RequestHeader edit Destination ^https http early LoadModule headers\u module/usr/lib/apache2/modules/mod\u headers.so RequestHeader编辑目标^https http早期 (例如,配置位置'/etc/httpd/conf.d/DefaultRequestHeader.conf')


它成功了。我不知道这是否有缺点。我来看看。

正如您已经注意到的,目标URL不应该是XML格式的,而应该是“destination”标题。也许你看到的是错误响应


一般来说,当客户端和服务器实现WebDAV级别3(如RFC4918中所定义)时,这个问题就会消失。WebDAV级别3允许目标头只是一个相对路径。

堆栈溢出确实说我只能发布一个url:(因此我添加了空格。在我的原始配置文件中,url当然是正确的。