2010-01-27 4 views
7

Quindi ho un'app che usa CouchDB come back-end. Couch non ha ancora il suo modello di sicurezza/utente in atto e, per impostazione predefinita, chiunque può fare qualsiasi cosa (compresa l'eliminazione di record e persino dell'intero database). Tuttavia, se limitiamo l'accesso solo alle richieste GET, siamo molto più sicuri.nginx come proxy inverso per limitare l'accesso al verbo http

Speravo di poter mettere in primo piano nginx come proxy inverso, ma non riesco a trovare un'opzione che ti consenta di filtrare le richieste in base al verbo in arrivo. Pound lo fa, quindi sto pensando di seguire questa strada , ma usiamo ampiamente nginx e sarebbe bello non dover aggiungere un'altra tecnologia nel mix. Qualcuno sa se c'è un'opzione che consentirà questo accada?

Mi accontento persino di un'opzione mod_proxy in Apache. Qualche idea?

risposta

8

È possibile ottenere l'accesso al tipo di richiesta HTTP dalla variabile $request_method. Quindi:

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

dolce, grazie dude! –

14

Provare a utilizzare invece la direttiva limit_except. È meglio evitare l'uso di if perché if is evil.

limit_except GET { 
    deny all; 
} 

Reference