Nginx 背后的 Fauxton(CouchDB 管理器)无法完全正常工作。以下 Nginx 阻止来自CouchDB 维基根本不起作用:
location /couchdb {
rewrite /couchdb/(.*) /$1 break;
proxy_pass http://localhost:5984;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
当我location /couchdb
用 更改部件时location ^~ /couchdb
,它至少通过显示 Fauxton 开始工作。
检查(Chromium Inspector)显示问题在于/_session
url 是从https://example.com/_session
而不是 请求的 https://example.com/couchdb/_session
,这意味着 Fauxton 无法正确确定它是在子目录中提供服务(为/_session
url 添加代理块可以解决 404 问题)这就是为什么我将请求转储到 CouchDB 主机上以nc -l -p 5984
查看标头设置为何:
GET /_utils/ HTTP/1.1
Host: example.com
X-Forwarded-For: 127.0.0.1
X-Real-IP: 127.0.0.1
我不确定X-Forwarded-For
标头是否设置正确。这里的预期标头是什么?如何确定问题出在我的 Nginx 设置上,还是其他问题(例如,我的防火墙 ( iptables
) 设置)?
编辑
可能的问题出在 Fauxton,而不是 CouchDB:https://github.com/apache/couchdb-fauxton/issues/944