Thanks for your answers.
@Jan
I already tried this and it cannot be used since the sub directory part
remains in the URI. To be able to use it without the trailing '/' I would
need to tell CouchDB to listen on "127.0.0.1:5984/couchdb" and (I think) I
cannot.
You are right "this is more an nginx than a CouchDB question" but CouchDB
2.0 doc contains this "Reverse proxy for a sub directory" part that seems
not correct, that's why I was hopping help from CouchDB users :).

@Sinan
You are completely right but only with '/' and actually this was exactly my
configuration when I did not need sub directories but now I do.

2018-03-12 11:34 GMT+01:00 Sinan Gabel <sinan.ga...@gmail.com>:

> Hi Max,
>
> Sorry for not being able to answer your actual question, I still want to
> draw your attention to the need for further nginx location needs (i.e.
> _changes): Here's an example of a working configuration when listening at
> the root / and using ssl.
>
>     location ~ ^/(.*)/_changes {
>         proxy_pass http://couchdb_node;
>
>         proxy_redirect off;
>
>         proxy_buffering off;
>         proxy_set_header Host $host;
>         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>         proxy_set_header X-Forwarded-Ssl on;
>     }
>
>     location / {
>         proxy_pass http://couchdb_node;
>
>         proxy_redirect off;
>         proxy_set_header Host $host;
>         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>         proxy_set_header X-Forwarded-Ssl on;
>     }
>
> On 12 March 2018 at 11:08, Jan Lehnardt <j...@apache.org> wrote:
>
> > 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