2010-01-27 9 views
7

Así que tengo una aplicación que utiliza CouchDB como back-end. Couch aún no tiene su modelo de seguridad/usuario en su lugar, y de forma predeterminada cualquiera puede hacer cualquier cosa (incluso borrar registros e incluso toda la base de datos). Pero, si limitamos el acceso solo a las solicitudes GET, estamos mucho más seguros.nginx como un proxy inverso para limitar el acceso del verbo http

Tenía la esperanza de poder poner nginx al frente como un proxy inverso, pero no puedo encontrar una opción que te permita filtrar las solicitudes según el verbo que ingrese. Pound hace esto, así que estoy pensando en seguir esa ruta , pero ya usamos nginx extensivamente y sería bueno no tener que agregar otra tecnología en la mezcla. Alguien sabe si hay una opción que permita que esto suceda?

Incluso me conformaría con una opción mod_proxy en Apache. ¿Algunas ideas?

Respuesta

8

Puede obtener acceso al tipo de solicitud HTTP desde la variable $request_method. Entonces:

location/{ 
    if ($request_method = 'GET') { 
    proxy_pass couchdb_backend; 
    } 
} 
+0

dulce, gracias amigo! –

14

Pruebe usar la directiva limit_except en su lugar. Es mejor evitar el uso de if porque if is evil.

limit_except GET { 
    deny all; 
} 

Reference

Cuestiones relacionadas