我正在考虑一个广泛使用CouchDB的Web应用程序,以尽可能多地使用本地erlang HTTP API获得巨大收益。Apache作为CouchDB的反向代理
您可以将Apache配置为反向代理,以允许将外部GET直接代理到CouchDB,而PUT/POST发送到应用程序内部逻辑(用于卫生,验证...)?或者这是不明智的 - 对于Web应用程序,CouchDB内置身份验证选项似乎有点弱。
感谢
我正在考虑一个广泛使用CouchDB的Web应用程序,以尽可能多地使用本地erlang HTTP API获得巨大收益。Apache作为CouchDB的反向代理
您可以将Apache配置为反向代理,以允许将外部GET直接代理到CouchDB,而PUT/POST发送到应用程序内部逻辑(用于卫生,验证...)?或者这是不明智的 - 对于Web应用程序,CouchDB内置身份验证选项似乎有点弱。
感谢
你有看到这个吗?的OAuth和cookie认证进行了检查四号:
http://github.com/halorgium/couchdb/commit/335af7d2a9ce986f0fafa4ddac7fc1a9d43a8678
另外,如果你在所有有兴趣使用二郎作为服务器语言,你可以代理的CouchDB通过webmachine:
http://blog.beerriot.com/2009/05/18/couchdb-proxy-webmachine-resource/
您可以使用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像往常一样来处理,所以你就可以将你的应用程序层但是你通常会。
我会考虑使用Apache mod_proxy的反向代理功能。创建一个虚拟主机配置,将Web服务器的某些HTTP请求转发给CouchDB。您可以设置规则,在其URI路径应该被转发等
请参见本指南的灵感:http://macgyverdev.blogspot.se/2014/02/apache-web-server-as-reverse-proxy-and.html
这是一个多CouchDB的问题Apache的一个问题。答案是我认为不是。没有办法根据http方法为请求配置apache代理。克里斯蒂安的答案可能是最好的。 – 2009-08-22 02:33:01