Apache作为CouchDB的反向代理

时间:2009-08-19 06:48:06

标签: http proxy erlang apache2 couchdb

我正在考虑一个广泛使用CouchDB的Web应用程序,以便尽可能地使用本机erlang HTTP API获得巨大收益。

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

由于

4 个答案:

答案 0 :(得分: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/

任何POSTPUTDELETE请求都会像往常一样由Apache处理,因此您可以按照常规方式连接应用程序层。

答案 1 :(得分:1)

你的问题是老化而没有答案,所以我会加上这个“几乎回答”。

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

这是,如果你准备将nginx作为revproxy放在前面,并将apache和couchdb作为后端。

答案 2 :(得分:1)

你看到了吗? OAuth和cookie身份验证在4日签入:

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

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

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

答案 3 :(得分:-1)

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

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