2009-08-19 6 views
4

Je pense à une application web qui utilise beaucoup CouchDB, au point où il serait très avantageux de servir autant que possible l'API HTTP native erlang. Pouvez-vous configurer Apache en tant que proxy inverse pour permettre à des GET externes d'être directement transmis à CouchDB, alors que PUT/POST sont envoyés à la logique interne de l'application (pour l'assainissement, l'authentification ...)? Ou est-ce imprudent - les options d'authentification intégrées de CouchDB semblent un peu faibles pour une application Web.Apache en tant que proxy inverse pour CouchDB

Merci

+0

ce qui est plus d'une question apache qu'une question de CouchDB. Et la réponse est que je pense que non. Il n'y a aucun moyen de configurer apache au proxy basé sur la méthode http pour la requête. La réponse de Christian ci-dessous est probablement la meilleure que vous obtiendrez. –

Répondre

1

Votre question vieillit sans réponses, donc je vais ajouter ce « presque réponse ».

Nginx peut certainement rediriger différemment en fonction des demandes.

Ceci est, si vous êtes prêt à placer nginx à l'avant comme revproxy et placez apache et couchdb à la fois comme backends.

4

Vous pouvez utiliser mod_rewrite pour sélectivement des demandes de proxy basées sur la méthode HTTP.

Par exemple:

# 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/ 

Toute POST, PUT ou DELETE demandes seront traitées par Apache comme d'habitude, vous pouvez donc câbler mais votre niveau d'application que vous le feriez habituellement.

Questions connexes