[Zope] nginx proxy zope/webdav, can't see files

mictlan tecutli mictlan.tecutli.0 at gmail.com
Thu Dec 11 15:05:04 EST 2008


hi, 

i´m trying to connect davfs to zope/webdav by way of nginx. this works fine (once davfs is configured correctly) conecting directly (that is w/out nginx in the middle). with nginx in the middle i can not see the files. that is "ls /davfs/mout/point" shows an empty folder. i can upload to that folder, if i mount directly to a folder where my user has permissions. but can´t see the files there. the folder is not empty. again, i can list the files using davfs without nginx as. 

on the nginx list i was told that the probem was most likely due to path formation. here is the client request, responces from nginx and zope and the configuration of nginx vhost. hopefully someone on this list can shed some light on the issue. 

> Probably, the problem is that in nginx case you use "PROPFIND /dav/nomndaa1/"
> while server responses to "PROPFIND /nomndaa1/" or "PROPFIND /plune/nomndaa1/"
> (according previously posted configuration). This may confuse the client,
> if it expect to see response to "PROPFIND /dav/nomndaa1/": response may
> have "/nomndaa1/" or "/plune/nomndaa1/" pathes.

so if i understand i should be able to fix this with a proxy_redirect like:

proxy_redirect   http://10.10.10.30:1980/nomndaa1/ http://$host:$server_port/dav/ 
this _is not_ working for me. the following is the client request, nginx and zope responces, as well as a modified vhost for nginx. 

client:
Sending request headers: PROPFIND /dav/ HTTP/1.1  Host:
lapalabradelagua.org  User-Agent: davfs2/1.3.3 neon/0.28.2  Connection:
TE  TE: trailers  Depth: 1  Content-Length: 314  Content-Type:
application/xml

nginx log:
"PROPFIND /dav/ HTTP/1.1" 207 11500 "-" "davfs2/1.3.3 neon/0.28.2"

zope log:
"PROPFIND /nomndaa1/ HTTP/1.0" 207 11784 "" "davfs2/1.3.3 neon/0.28.2"

complete nginx vhost:
                server {
                        listen 10.10.10.20:80;
                        server_name .myhost.org;
                        if ($request_uri ~* ^/login_(.*)) {
                            rewrite ^/login_(.*) https://$host/login_$1 permanent;
                            break;
                            }
                            location /dav/ {
                                proxy_pass http://10.10.10.30:1980/nomndaa1/;
                                proxy_pass_header   Server;
                                proxy_set_header Host $http_host;
                                proxy_set_header  X-Forwarded-For $remote_addr;
                                proxy_redirect   http://10.10.10.30:1980/nomndaa1/ http://$host:$server_port/dav/;
                                }
                            location / {
                                     proxy_pass  http://10.10.10.30:6081/VirtualHostBase/http/myhost.org:80/nomndaa1/VirtualHostRoot/;
                                     proxy_set_header Host $http_host;
                            }

saludo, 
kev


More information about the Zope mailing list