Hi,

I think nginx passes on auth headers and the default auth handler
in CouchDB then tries to verify it which it can't because you don't
have any admins. What works, I think, to have the same username
and password combinations for CouchDB and the upstream proxy.

If that's no feasible, I committed the `null_authentication_handler`
that just accepts everybody.

in your `local.ini` set:

[httpd]
authentication_handler = {couch_httpd, null_authentication_handler}

Note that this is available only in trunk since r762574

Cheers
Jan
--


On 12 Apr 2009, at 07:29, Samuel Wan wrote:

I have also set up nginx as a reverse proxy to couchdb, and also
encountered the second login prompt mentioned by Alex Rudyk in his
email quoted below. The second authentication prompt looks like this:

      A username and password are being requested by http://<ip
address>. The site says: "administrator"

I've confirmed that the proxy works without the auth turned on (except
for the known couch.js subdirectory URL issue). I've also confirmed
that the default.ini and couchdb.ini files don't have admin
username/passwords activated.

Here is my nginx configuration.

       location /couchdb {
               rewrite /couchdb/(.*) /$1 break;
               proxy_pass http://localhost:5984;
               proxy_redirect     off;
               proxy_set_header   Host             $host;
               proxy_set_header   X-Real-IP        $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_fo$
               auth_basic "Restricted";
               auth_basic_user_file htpasswd;
       }

Does the auth_basic directive pass along some kind of authentication
request to the proxied CouchDB server? It seems that the CouchDB
authentication is getting triggered even though I haven't modified the
local.ini or default.ini files.

-Sam

---------------------
From    "Alex Rudyk" <[email protected]>
Subject Basic auth using Nginx as proxy
Date    Mon, 12 Jan 2009 03:13:06 GMT

I am trying to setup basic auth for couchdb that is proxied by Nginx.
I setuped nginx proxy and it works very well but when I am adding basic auth for nginx it pass Nginx basic auth module, but browser show "enter user name and password" dialog once again with real "administrator" that I think is goes from couchdb new default_authentication_handler. My nginx realm name is
"Restricted".
Here is nginx config file:

server {
     listen        8088;
   server_name   couchdb;
     location / {
       proxy_pass http://127.0.0.1:5984;
               proxy_redirect off;
               proxy_set_header   Port             $proxy_port;
               proxy_set_header   X-Real-IP        $remote_addr;
               proxy_set_header   X-Forwarded-For
$proxy_add_x_forwarded_for;

       auth_basic            "Restricted";
               auth_basic_user_file  htpasswd;

       }
}

Does any body have some ideas how to fix this?


Reply via email to