nginx作为限制http动词访问的反向代理

时间:2010-01-27 22:18:42

标签: rest proxy nginx couchdb

所以我有一个使用CouchDB作为后端的应用程序。 Couch还没有真正拥有它的安全/用户模型,默认情况下任何人都可以做任何事情(包括删除记录甚至整个数据库)。但是,如果我们限制只访问GET请求,我们会更安全。

我希望我可以将nginx作为反向代理放在前面,但是我找不到一个允许你根据动词过滤请求的选项。庞德这样做所以我想要走这条路,但是我们已经广泛使用了nginx,并且不必在混合中添加其他技术。任何人都知道是否有可以让这种情况发生的选择?

我甚至会选择Apache中的mod_proxy选项。有什么想法吗?

2 个答案:

答案 0 :(得分:16)

请尝试使用limit_except指令。最好避免使用if,因为if is evil

limit_except GET {
  deny   all;
}

Reference

答案 1 :(得分:8)

您可以从$request_method变量访问HTTP请求类型。所以:

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