2

不知何故,我无法将本地 couchdb 与远程服务器进行复制...我总是在日志中看到:

[error] [<0.5607.0>] Replicator, request GET to "http://admin:*****@mydomain.com/couchdb/apps/_changes?feed=continuous&style=all_docs&since=12&heartbeat=10000" failed due to error {error,req_timedout}
[info] [<0.5607.0>] Retrying _changes request to source database http://admin:*****@mydomain.com/couchdb/apps/ with since=12 in 2.0 seconds

但是当我用浏览器查询 url (没有连续参数)

http://admin:*****@mydomain.com/couchdb/apps/_changes?style=all_docs&since=12&heartbeat=10000

我可以毫无问题地连接...如果我将超时设置得更高(fe 90 秒),它不会改变任何东西.. 在我通过 HTTPS 尝试之前,它没有工作,所以我现在用 HTTP 尝试了.. 在浏览器中很好,在本地 CouchDB 中不起作用.. :(

我的复制文档如下所示:

{
   "_id": "ab0c55f3a60057835c079f58360042de",
   "_rev": "2-34cd32e7cada589095a1868bc54e5fce",
   "source": "http://admin:xxxxx@mydomain.com/couchdb/apps",
   "target": "apps",
   "connection_timeout": 30000,
   "continuous": true,
   "owner": "admin",
   "_replication_state": "triggered",
   "_replication_state_time": "2014-08-02T19:43:50+02:00",
   "_replication_id": "06beb828bd5b9d4a78bfc3e049b0bb9c"
}

它显示复制器正在状态控制台中运行,但在日志中我收到上面的错误消息。你可能有提示吗?

4

1 回答 1

1

该死的..我忘了包括在 nginx 中关闭缓冲

http://wiki.apache.org/couchdb/Nginx_As_a_Reverse_Proxy

通过 nginx 进行持续复制

上述配置将中断连续复制。通过添加以下代码段,复制将再次起作用:

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

但后来我得到另一个错误:未经授权的访问..

所以我不得不在我的复制文档中添加以下内容 - 然后它起作用了:

"create_target":true,
"user_ctx": {
    "roles": ["_admin"]
}
于 2014-08-02T18:04:08.440 回答