I have been using Davenport+Tomcat through an Apache AJP reverse proxy for several years and it has been a great help in my institution. I would like to migrate to SAMBADAV maintaining the same configuration for my users who access davenport server through a reverse proxy.
What I am currently using in my apache configuration for Davenport reverse proxy are these directives:
ProxyPass /webfolders ajp://davenport.my.domain:8009/webfolders flushpackets=on ProxyPassReverse /webfolders ajp://davenport.my.domain:8009/webfolders
So I have tried to do the same with a working configuration on http:// sambadav.my.domain/webfolders. As I have not found any documentation, I have tried with:
ProxyPass /webfolders http://sambadav.my.domain/webfolders ProxyPassReverse /webfolders http://sambadav.my.domain/webfolders
And that works for web browsing and some webdav clients (Sardine/0.0, Windows) but does not work for some other webdav clients (gvfs/1.20.3 and others) which work correctly with both direct connection to sambadav server and current proxyed connection to davenport server.
Analizing traffic I see that -after authorization- when SAMBADAV replies to OPTION request a 200 OK to the Apache reverse proxy server, it sends these headers:
HTTP/1.1 200 OK Date: Wed, 21 Sep 2016 09:31:13 GMT Server: Apache/2.4.10 (Debian) X-Sabre-Version: 3.0.9 Allow: OPTIONS, GET, HEAD, DELETE, PROPFIND, PUT, PROPPATCH, COPY, MOVE, REPORT, LOCK, UNLOCK DAV: 1, 3, extended-mkcol, 2 MS-Author-Via: DAV Accept-Ranges: bytes Content-Length: 0 Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: text/html; charset=UTF-8
While Apache reverse proxy server sends different headers back to the client:
HTTP/1.1 200 OK Date: Wed, 21 Sep 2016 09:31:13 GMT Vary: Accept-Encoding Content-Encoding: gzip Cache-Control: max-age=0, no-cache Content-Length: 20 Keep-Alive: timeout=15, max=99 Connection: Keep-Alive Content-Type: text/html; charset=UTF-8
And that is when client supposes that "the server does not support WebDAV".
How can I make Apache reverse proxy not to filter these headers?
I have also tried including the next location directive with no success.
<Location /webfolders/> <Limit OPTIONS PROPFIND GET REPORT MKACTIVITY PROPPATCH PUT CHECKOUT MKCOL MOVE COPY DELETE LOCK UNLOCK MERGE> Order Deny,Allow Allow from all Satisfy Any </Limit> </Location>
These are the webdav clients I've tried with reverse proxy, some of them not working with SAMBADAV (and Apache reverse proxy), but working with Davenport (and Apache AJP reverse proxy)
| Operating System | Client | Works? | -------------------------------------------------------------------------------- | Linux | gvfs/1.20.3 | No | | Linux | davfs2/1.4.7 neon/0.30.0 | No | | MacOS X | WebDAVFS/3.0.0 (03008000) Darwin/15.6.0 (x86_64) | No | | MacOS X | WebDAVLib/1.3 | idem | | Windows 10 | Microsoft-WebDAV-MiniRedir/10.0.10586 | Yes | | Android | Sardine/0.0 | Yes |