module dav with http_auth

Francis Daly francis at
Sun Mar 27 15:36:42 MSD 2011

On Sat, Mar 26, 2011 at 08:24:56PM +0100, Cédric Jeanneret wrote:

Hi there,

> I'm wanting to create my own "firefox sync" service. As I could read,
> it's only a dav service without any special thing.

As I understand it, it's not quite that simple. Search for "weave_minimal"
for one implementation of the server side of that service that is reported
to work with nginx.

But separate from that, your question is about dav and auth...

>   location ~ /user/([a-z]+)/.* {
>     auth_basic 'Firefox Sync';
>     auth_basic_user_file  /var/www/vhosts/weave.domain/$1.htpasswd;
>   }

> I've created a user 8say, "my_example") and related password, so that
> I've a " /var/www/vhosts/weave.domain/my_example.htpasswd" file
> I've created the related user/my_example directory.

(Note that "my_example" doesn't match this location. But I guess your
real test user does.)

> But nginx tells me:
> 2011/03/26 20:22:16 [error] 23025#0: *144 no user/password was
> provided for basic authentication, client: (ipv4), server:
> weave.domain.tld, request: "OPTIONS /user/my_example/ HTTP/1.1", host:
> "weave.domain.tld"

That's error_log. Also look in access_log, and you should see two
requests. (At least, I do when I try a similar test.)

> I don't understand this error - I use cadaver for my test, and provide
> the username/password... 

My cadaver issues one "OPTIONS /" request without user/pass; nginx replies
401, then cadaver reissues the request with user/pass which nginx accepts
(and then replies 405, but that's a slightly-side issue).

So the http_auth-with-dav part looks fine to me. Unless you have some
other combination of what you did / what you saw / what you expected to
see to report.

One issue you will likely come across is that nginx dav doesn't seem
to natively handle OPTIONS. Another is that Firefox Sync doesn't seem
to just be a dav filespace. But they can be addressed separately --
the http_auth part should be working!

All the best,

Francis Daly        francis at

More information about the nginx mailing list