Pull to refresh

Comments 5

К сожалению, нормальную DDoS атаку таким образом не отразишь. Кроме того, если будет забит сетевой канал, никакие средства nginx не помогут.
Почему не написали про 444 код
что на основе скориговой системы можнло логировать и блогировать через ipset или iptables raw

set $add 1;
location /index.php {
limit_except GET POST {
deny all;
}
set $ban "";
if ($http_referer = "" ) {set $ban $ban$add;}
if ($request_method = POST ) {set $ban $ban$add;}
if ($query_string = «action=login» ){set $ban $ban$add;}
if ($ban = 111 ) {
access_log /var/log/[133]nginx/ban IP;
return 444;
}
proxy_pass 127.0.0.1:8000;
}
ну и метрик для скоринга накрутить
ни слова про тюнинг ядра… хоть это напрямую к нгинксу и не относится тему можно было бы осветить.
А не поделитесь опытом работы со скоринговыми системами, если таковой имеется?
if ($http_referer = "" ) {set $ban $ban$add;}
if ($request_method = POST ) {set $ban $ban$add;}
if ($query_string = «action=login» ){set $ban $ban$add;}
if ($ban = 111 ){
return 444;
}

>>

map "$http_referer$request_method$query_string" $ban {
    "POSTaction=login"  "1";
}
if ($ban) {
    return 444;
}

Директива client_body_timeout контролирует время ожидания NGINX между записями в теле клиента. Директива client_header_timeout делает то же для заголовков. По умолчанию в обоих случаях ставится 60 секунд. В следующем примере этот интервал устанавливается на значении 5 секунд.

Аккуратнее с такими значениями. Можно легко так пустить под нож мобильных клиентов.
Sign up to leave a comment.