Hi Max,

this is more an nginx than a CouchDB question, but 
https://serverfault.com/questions/459369/disabling-url-decoding-in-nginx-proxy#463932
 suggests that if you use proxy_pass without a uri (not even a slash), that 
things should work.

Can you verify you’re using `proxy_pass http://localhost:5984;` and not e.g. 
`proxy_pass http://localhost:5984/;`. If you are, you should open a ticket with 
the nginx team.

Best
Jan
--



> On 12. Mar 2018, at 10:20, max <maxima...@gmail.com> wrote:
> 
> 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

-- 
Professional Support for Apache CouchDB:
https://neighbourhood.ie/couchdb-support/

Reply via email to