Filtrer les méthodes HTTP avec Nginx

Pour des raisons quelconques il est parfois intéressant de filtrer les méthodes HTTP disponibles directement côté serveur.

Exemple : vous souhaitez renforcer la sécurité de votre couchdb en backend derrière votre reverse proxy nginx ou de votre super RESTful webservice ...

Pour n'autoriser que les requêtes de type GET et POST sur l'url /users et retourner une erreur 444 (No Response) pour tous les autres types de requêtes (PUT, DELETE ...) il suffit d'utiliser les directives suivantes :

location /users {
    if ($request_method !~ ^(GET|POST)$) {
        return 444;
    }
}

Ressources complémentaires :

blog comments powered by Disqus