Как отказать POST в URL в nginx
Некоторые из SQL-тяжелых URL в моем приложении (скажем, /members
) атакованы ботнетами. Поэтому я хотел бы отключить кого-либо публиковать по этим URL-адресам, в то время как другие могут получить их.
Я попытался сделать вложенный цикл следующим образом:
if ($request_uri ~ .*members^) {
if ($request_method = POST ) {
return 444;
}
}
Но nginx не принимает это.
Я также попробовал эту директиву
location ~ "^/members$" {
if ($request_method ~ ^(POST)$ ) {
return 444;
}
}
но и этот отрицает GET.
Так что оставил невежественным и ценю вашу помощь.
1 ответ
Попробуй это:
location ^~ /members {
limit_except GET {
deny all;
}
}
Отклонить все запросы, кроме GET
,