nginx как обратный прокси-сервер для ограничения доступа к глаголу http - PullRequest
7 голосов
/ 28 января 2010

Итак, у меня есть приложение, которое использует CouchDB в качестве бэкэнда. На самом деле у Couch пока нет своей модели безопасности / пользователя, и по умолчанию любой может сделать что угодно (включая удаление записей и даже всей базы данных). Но если мы ограничим доступ только GET-запросами, мы станем намного безопаснее.

Я надеялся, что смогу выставить nginx как обратный прокси-сервер, но я не могу найти опцию, которая позволяет вам фильтровать запросы по входящему глаголу. Паунд делает это, так что я думаю о том, чтобы идти по этому пути, но мы уже широко используем nginx, и было бы неплохо не добавлять в процесс еще одну технологию. Кто-нибудь знает, есть ли вариант, который позволит этому случиться?

Я бы даже согласился на параметр mod_proxy в Apache. Есть идеи?

Ответы [ 2 ]

16 голосов
/ 19 октября 2011

Попробуйте вместо этого использовать директиву limit_except. Лучше избегать использования if, потому что if is evil .

limit_except GET {
  deny   all;
}

Ссылка

8 голосов
/ 08 февраля 2010

Доступ к типу HTTP-запроса можно получить из переменной $request_method. Итак:

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