2009-08-19 116 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像往常一樣來處理,所以你就可以將你的應用程序層但是你通常會。