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

Rob*_*ron 7 rest proxy couchdb nginx

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

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

我甚至会在Apache中找到一个mod_proxy选项.有任何想法吗?

小智 17

请尝试使用limit_except指令.最好避免使用,if因为如果是邪恶的话.

limit_except GET {
  deny   all;
}
Run Code Online (Sandbox Code Playgroud)

参考


Phi*_*ham 8

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

location / {
  if ($request_method = 'GET') {
    proxy_pass couchdb_backend;
  }
}
Run Code Online (Sandbox Code Playgroud)