couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rutherford, Tim - Exelis" <Tim.Rutherf...@exelisinc.com>
Subject HTTPS Reverse Proxy Replication
Date Tue, 16 Jun 2015 16:46:19 GMT
I have been struggling for a while now to get couchdb continuous replication to work with a
remote database behind an https reverse proxy. I'm not sure if I am missing something, but
as far as I can tell, it should work and just isn't.

My setup has a windows machine running couchdb (version 1.5.1) on the default port 5984 and
a remote couchdb (version 1.5.1) behind apache httpd using HTTPS.

Apache httpd is configured with: ProxyPass /futon http://localhost:5984

I added a replication document to _replicator that looks like this:
{
   "source": {
       "url": "https://[remote ip]/futon/iss-local<https://[remote%20ip]/futon/iss-local>",
       "headers": {
           "Authorization": "Basic [valid base64 user:pass]"
       }
   },
   "target": "iss-remote",
   "create_target": true,
   "continuous": true,
   "user_ctx": {
        "roles": ["_admin"]
      }
}

The replication document is successfully added and replication_state is set to triggered.
The status page shows the Replication task and the status column shows "Checkpointed source
sequence 0, current source sequence 20416, progress 0%".

It never progresses from there. iss-remote is created successfully, but no documents are added.
Checking CouchDB's log file shows a series of error messages like this:
[Thu, 28 May 2015 22:04:46 GMT] [error] [<0.22546.4>] Replicator, request GET to "https://[remote
ip]/futon/iss-local/1_33333?revs=true&open_revs=%5B%22615-738587c5fb3aa93f573fa5a79d3cf3ec%22%5D&latest=true<https://[remote%20ip]/futon/iss-local/1_33333?revs=true&open_revs=%5B%22615-738587c5fb3aa93f573fa5a79d3cf3ec%22%5D&latest=true>"
failed due to error timeout
[Thu, 28 May 2015 22:04:46 GMT] [info] [<0.22544.4>] Retrying GET to https://[remote
ip]/futon/iss-local/1_33333?revs=true&open_revs=%5B%22615-738587c5fb3aa93f573fa5a79d3cf3ec%22%5D&latest=true
in 1.0 seconds due to error timeout

Couch then waits a bit and tries again and I get the same error message.

Which doesn't make sense to me because that URL works correctly using multiple tools (web
browser, curl, and even using an httpc:request() in erlang) from the same machine.

If I expose port 80 on the remote server and use http instead everything works as expected.
Documents are replicated and progress goes up to 100%.

As far as I can tell, this is an issue with couchdb when talking to the reverse proxy. I tried
exposing couchdb's https port 6984 using the same certificate and it worked fine.

I have installed a new version of apache and only configured the proxypass and ssl and I still
get the same issue.

I ran wireshark (with ssl decryption using the certificate from the server) on the machine
that I am replicating to and I don't see any issues. I see the GET request from the error
log and a corresponding 200 response with data. A little while later, the error message shows
up in the log.

Has anyone seen this before? Is there anything I can do to fix it?

Thank you,
Tim Rutherford


________________________________

This e-mail and any files transmitted with it may be proprietary and are intended solely for
the use of the individual or entity to whom they are addressed. If you have received this
e-mail in error please notify the sender. Please note that any views or opinions presented
in this e-mail are solely those of the author and do not necessarily represent those of Exelis
Inc. The recipient should check this e-mail and any attachments for the presence of viruses.
Exelis Inc. accepts no liability for any damage caused by any virus transmitted by this e-mail.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message