Hi,

To make CouchDB listen as sub directory, doc says (
https://cwiki.apache.org/confluence/display/COUCHDB/Nginx+as+a+proxy) to
use:
location /couchdb {
    rewrite /couchdb/(.*) /$1 break;
    proxy_pass http://localhost:5984;
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

But this cannot be used for attachment with special character such as +,
-,  ,
For those CouchDB will send back: "{"error":"not_found","reason":"Document
is missing attachment"}"

The only way I found to fix it is:
location /couchdb/ {
        rewrite ^ $request_uri;
        rewrite ^/ couchdb /(.*) $1 break;
        return 400;
        proxy_pass http://127.0.0.1:5984/$uri;
}

But doing so I cannot access CouchDB root (http://127.0.0.1/couchdb) since
it will result in Nginx 500 error (zero length URI).

Do you know a better Nginx configuration?

Thanks,

Max

Reply via email to