PouchDB - "Database encountered an unknown error" 尝试连接到 CouchDB 时

PouchDB - "Database encountered an unknown error" when trying to connect to CouchDB

我正在尝试设置 pouchDB 同步,但我在远程连接到 couchDB 时遇到问题...我已按照 these instructions from couchDB 安装到我的 ubunto 服务器上 - 这是由 laravel 管理的forge...虽然这个项目本身没有使用 laravel(只是一个普通的 html 文件)

一切都已正确安装,并得到所有预期的响应

如果我运行: curl localhost:5984

我得到:{"couchdb":"Welcome","uuid":"*******************","version":"1.6.1","vendor":{"version":"14.04","name":"Ubuntu"}}

我运行:npm install -g add-cors-to-couchdbadd-cors-to-couchdb

而且我没有收到任何跨域错误

但如果我尝试去 http://178.xx.xxx.xxx:5984/_utils 它只是挂起?

使用以下代码时:

var localdb = new PouchDB('messages');
var remotedb = new PouchDB('http://178.xx.xx.xx:5984/messages');

localdb.sync(remotedb, {live: true});

我得到:

Unhandled promise rejection 

Promise 
{
    [[PromiseStatus]]: "rejected", 
    [[PromiseValue]]: o
}
__proto__: Promise
[[PromiseStatus]]: "rejected"
[[PromiseValue]]: o
    error: true
    message: "Database encountered an unknown error"
    name: "unknown_error"
    status: 500

(取自chrome)

知道我为什么会收到此错误吗?它似乎超时了……。知道为什么要这样做吗?

另外如果我使用:ssh -L5984:127.0.0.1:5984 forge@178.xx.xx.xx

然后转到http://localhost:5984/_utils/它工作正常

同时将远程地址替换为 http://localhost:5984/messages 也可以使同步工作

在使用它的同时,我还使用 "Verify Installation" 检查了所有安装是否正确,然后返回 "Your installation looks fine. Time to Relax."

St运行ge!

那么有人知道为什么我无法远程连接到 couchDB 吗?

如有任何帮助,我们将不胜感激!

谢谢, 戴夫

听起来您需要为您的 CouchDB 修改 local.ini 文件,以允许从更多 IP 进行访问,而不仅仅是本地主机。

检查您的 local.ini 此部分:

[httpd]
;port = 5984
;bind_address = 127.0.0.1

将其更改为:

[httpd]
;port = 5984
bind_address = 0.0.0.0

编辑:一个更简单的解决方案是设置您的 Nginx/Apache 代理以将 http://example.com/couchdb 路由到 localhost:5984。这是我使用的 Nginx 配置:

location /couchdb {
  rewrite /couchdb(.*)  break;
  proxy_pass http://127.0.0.1:5984;
  proxy_redirect off;
  proxy_buffering off;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}