我有2台服务器。网络上的一个反向代理和一个服务于WebDAV的专用链接上的代理。
Booth服务器是apache httpd v2。
在我的代理上:
ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> 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 Bad gateway
。
原因是反向代理不会在扩展的dav请求中重写url。
源网址位于标题内,并正确转换为http://share.local/file1
。
目标URL位于我不理解的某个xml片段内,并保持https://example.com/file1
:(
是否有一种标准的方法让apache正确转换请求?
感谢您的努力。
答案 0 :(得分:9)
我补充说:
LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so RequestHeader edit Destination ^https http early
它有效。我不知道这是否有缺点。我明白了。
答案 1 :(得分:2)
目标网址不应该是XML,而是在“目标”标题中,正如您已经注意到的那样。也许您正在查看错误响应...
通常,当客户端和服务器实现WebDAV级别3(如RFC4918中所定义)时,此问题将消失,这允许Destination标头只是一个相对路径。