Http 反向代理背后的WebDAV
我有两台服务器。一个反向代理位于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访问。 问题就在这里 只读命令工作正常。但是当我想移动某个东西时,我得到了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
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当然是正确的。