反向代理背后的WebDAV

时间:2009-07-10 16:53:54

标签: http apache2 reverse-proxy webdav mod-proxy

我有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正确转换请求?

感谢您的努力。

2 个答案:

答案 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标头只是一个相对路径。