2009-08-19 106 views
4

我正在考虑一个广泛使用CouchDB的Web应用程序,以尽可能多地使用本地erlang HTTP API获得巨大收益。Apache作为CouchDB的反向代理

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

感谢

+0

这是一个多CouchDB的问题Apache的一个问题。答案是我认为不是。没有办法根据http方法为请求配置apache代理。克里斯蒂安的答案可能是最好的。 – 2009-08-22 02:33:01

回答

1

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

Nginx绝对可以根据请求重定向。

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

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/ 

任何POSTPUT,或者DELETE请求将被Apache像往常一样来处理,所以你就可以将你的应用程序层但是你通常会。