Ubuntu 数据库-”的;数据库遇到未知错误";尝试连接到CouchDB时

Ubuntu 数据库-”的;数据库遇到未知错误";尝试连接到CouchDB时,ubuntu,couchdb,pouchdb,Ubuntu,Couchdb,Pouchdb,我正在尝试设置PockDB同步,但我无法远程连接到couchDB。。。我已经在我的ubunto服务器上安装了,该服务器由laravel forge管理……尽管这个项目本身并没有使用laravel(只是一个普通的html文件) 一切都已正确安装,并有所有预期的响应 如果我运行:curl localhost:5984 我得到:{“couchdb”:“欢迎”,“uuid”:“****************”,“版本”:“1.6.1”,“供应商”:{“版本”:“14.04”,“名称”:“Ubuntu”

我正在尝试设置PockDB同步,但我无法远程连接到couchDB。。。我已经在我的ubunto服务器上安装了,该服务器由laravel forge管理……尽管这个项目本身并没有使用laravel(只是一个普通的html文件)

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

如果我运行:
curl localhost:5984

我得到:
{“couchdb”:“欢迎”,“uuid”:“****************”,“版本”:“1.6.1”,“供应商”:{“版本”:“14.04”,“名称”:“Ubuntu”}

我运行:
npm安装-g将cors添加到couchdb
将cors添加到couchdb

我没有收到任何跨原点错误

但如果我试着去,它就挂了

使用以下代码时:

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:5984forge@178.xx.xx.xx

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

还将远程地址替换为
http://localhost:5984/messages
也使同步工作正常

在使用此工具时,我还使用“验证安装”检查了所有安装是否正确,并返回“您的安装看起来很好。是时候放松了。”

奇怪

有人知道为什么我不能远程连接到couchDB吗

任何帮助都将不胜感激

谢谢,
Dave

听起来您需要修改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代理以路由到localhost:5984。以下是我使用的Nginx配置:

location /couchdb {
  rewrite /couchdb(.*) $1 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;
} 

谢谢你的回复@nlawson。。。我已经这样做了,并重新启动了couchdb(在配置面板中也确认了它),但仍然无法工作:(您可能还需要配置对5984端口的外部访问。这将取决于您的操作系统的设置方式。在这些情况下,我通常会设置一个nginx/apache代理,以便例如本地主机的代理:5984。在nginx中,我使用.AWESOME!非常感谢@nlawson…您的配置工作得非常完美:)如果你想用你最后的评论来回答这个问题,我会接受它作为答案,再次感谢!