举个例子 这是我线上在跑的
limit_req_zone $anti_post zone=anti_post:20m rate=1r/s;
location =/post.php {
if ($request_method = POST) { #是否为post
set $isp P;
}
if ($http_referer !~* "
xxx.com") { #不是来源网站
set $isp "${isp}N";
}
if ($isp = PN) { #不是来源网站的post 则403
return 403;
}
if ($remote_addr = "118.244.147.22") { #针对固定ip的禁止
return 403;
}
limit_req zone=anti_post burst=1 nodelay;
if ($http_cookie ~* "usercookie=([^;]+)(?:;|$)") { 一秒钟只允许post1-2次
set $anti_post $1;
}
}