如何拒绝在nginx中的某些网址发布POST

时间:2014-10-17 00:46:40

标签: post nginx webserver

我的应用程序中的一些sql重点URL(比如/ member)正遭到僵尸网络的攻击。所以我想禁用任何人发布到这些网址,同时允许其他人获取它们。

我试图像这样制作一个嵌套循环:

if ($request_uri ~ .*members^)  {

   if ($request_method ~ ^(POST)$ ) {
         return 444;
     }
}

但是nginx不接受这个。所以想知道如何应用该指令?

更新:

我也试过

location ~ "^/members$" {
    if ($request_method ~ ^(POST)$ ) {       
        return 444;
    }
}

但是这个也否认GET。

所以仍然需要帮助。

1 个答案:

答案 0 :(得分:0)

我会阻止这样的机器人(示例机器人):

if ($http_user_agent ~* LWP::Simple|BBBike|wget|Baiduspider|Jullo|msnbot|scrapbot) {

    return 403;
}