我正在考虑一个广泛使用CouchDB的web应用程序,尽可能多地使用原生erlang HTTP API将会带来巨大的收益。
您是否可以将Apache配置为反向代理,以允许将外部GET直接代理到CouchDB,而将PUT/POST发送到应用程序内部逻辑(用于环境保护、身份验证...)?或者这是不明智的--对于Web App来说,CouchDB内置的身份验证选项似乎有点弱。
谢谢
发布于 2010-04-12 03:19:08
您可以使用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照常处理,因此您可以像往常一样连接您的应用层。
发布于 2009-08-19 16:58:18
你的问题正在老化,没有答案,所以我将添加这个“几乎答案”。
Nginx绝对可以根据请求进行不同的重定向。
这是,如果您准备将nginx放在前端作为revproxy,并将apache和couchdb都放在后端。
发布于 2009-08-19 17:11:57
这个你看过了吗?OAuth和cookie身份验证已在4号签入:
http://github.com/halorgium/couchdb/commit/335af7d2a9ce986f0fafa4ddac7fc1a9d43a8678
此外,如果您对使用Erlang作为服务器语言感兴趣,您可以通过webmachine代理couchdb:
http://blog.beerriot.com/2009/05/18/couchdb-proxy-webmachine-resource/
https://stackoverflow.com/questions/1298171
复制相似问题