5

我正在考虑一个广泛使用 CouchDB 的 Web 应用程序,以至于尽可能多地使用本机 erlang HTTP API 提供服务会有很大的收益。

您能否将 Apache 配置为反向代理,以允许将外部 GET 直接代理到 CouchDB,而将 PUT/POST 发送到应用程序内部逻辑(用于卫生、身份验证......)?或者这是不明智的——CouchDB 内置的身份验证选项对于 Web 应用程序来说似乎有点弱。

谢谢

4

4 回答 4

4

可以使用mod_rewrite基于 HTTP 方法有选择地代理请求。

例如:

# Send all GET and HEAD requests to CouchDB
RewriteCond %{REQUEST_METHOD} GET|HEAD
RewriteRule /db/(.*) http://localhost:5984/mydb/_design/myapp/$1 [P]

# Correct all outgoing Location headers
ProxyPassReverse /db/ http://localhost:5984/mydb/_design/myapp/

任何POST, PUT, 或DELETE请求都将由 Apache 照常处理,因此您可以按照通常的方式连接您的应用程序层。

于 2010-04-11T19:19:07.887 回答
1

您的问题正在老化而没有答案,所以我将添加这个“几乎答案”。

Nginx绝对可以根据请求进行不同的重定向。

也就是说,如果您准备将 nginx 作为 revproxy 放在前面,并将 apache 和 couchdb 都作为后端。

于 2009-08-19T16:58:17.860 回答
1

你看到这个了吗?4日签到OAuth和cookie认证:

http://github.com/halorgium/couchdb/commit/335af7d2a9ce986f0fafa4ddac7fc1a9d43a8678

另外,如果你对使用 Erlang 作为服务器语言感兴趣,你可以通过 webmachine 代理 couchdb:

http://blog.beerriot.com/2009/05/18/couchdb-proxy-webmachine-resource/

于 2009-08-19T17:11:56.647 回答
-1

我会考虑使用 Apache mod_proxy 的反向代理功能。创建一个虚拟主机配置,将 Web 服务器的某些 HTTP 请求转发到 CouchDB。您可以设置应转发的 URI 路径等规则。

请参阅本指南以获取灵感: http: //macgyverdev.blogspot.se/2014/02/apache-web-server-as-reverse-proxy-and.html

于 2014-02-12T11:03:16.200 回答