HASNI Faiçal
HASNI Faiçal

Reputation: 260

Configure Nginx as reverse proxy for Couchdb

I have a Couchdb database that should not be accessed directly, so I need to use a reverse proxy. How to configure Nginx or apache as a reverse proxy for Couchdb?

Upvotes: 2

Views: 2749

Answers (2)

HASNI Faiçal
HASNI Faiçal

Reputation: 260

Based on @djcrabhat replay, I created this config to enables replication

...
location / {
    proxy_pass http://192.168.99.100:5984 //couchdb address
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
    
location ~ ^/(.*)/_changes {
    proxy_pass http://192.168.99.100:5984 //couchdb address
    proxy_redirect off;
    proxy_buffering off;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
...

Upvotes: 1

djcrabhat
djcrabhat

Reputation: 474

To reverse proxy in nginx, you need a config that looks like this https://www.nginx.com/resources/admin-guide/reverse-proxy/

upstream  mycouch {
    server 192.168.0.100:
}

server {
    listen       *:80;
    server_name  mycouch.mydomain.whatever.com;
    underscores_in_headers on;

    location / {
     expires off;
     proxy_pass  http://mycouch;
     proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
     proxy_redirect off;
     proxy_buffering off;
     proxy_set_header        Host            $host;
     proxy_set_header        X-Real-IP       $remote_addr;
     proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
   }
}

This will proxy HTTP calls for your couchdb. Since you tagged this question with docker, if you wanted to bake a container with this stuff, I'd suggest you start FROM nginx, https://hub.docker.com/_/nginx/ (or, just mount a config file in to nginx image as is)

Upvotes: 4

Related Questions