如何拒绝 POST 到 nginx 中的 url

Jan*_*and 4 nginx web-server botnet

我的应用程序上的一些 SQL-heavy URL(例如/members)正在受到僵尸网络的攻击。所以我想禁止任何人发布到这些 URL,同时允许其他人获取它们。

我试着做一个这样的嵌套循环:

if ($request_uri ~ .*members^)  {

   if ($request_method = POST ) {
         return 444;
     }
}
Run Code Online (Sandbox Code Playgroud)

但是 nginx 不接受这一点。

我也试过这个指令

location ~ "^/members$" {
    if ($request_method ~ ^(POST)$ ) {       
        return 444;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是这个也否认GET。

所以一无所知,感谢您的帮助。

Glu*_*eon 9

尝试这个:

location ^~ /members {
  limit_except GET {
    deny  all;
  }
}
Run Code Online (Sandbox Code Playgroud)

拒绝除 之外的所有请求GET

  • 不,它没有。发布您的**整体**配置。 (6认同)