Итак, нас, а точнее один из саИтов на виртуальном хостинге в очередной раз начали ддосить. Как правило, без специальных ддос железок такой клиент заворачивается на днс на 127.0.0.1, или в случае выделенного ip-адреса- на центральном маршрутизаторе. Но мы решили пойти по другому
У нас есть nginx фронт-эндом, поэтому будем пытаться выстаивать под ддосом с 20000 хостов при помощи него.
Подразумевается, что proxy_cache_path у нас уже описан в контексте http.
Для начала обосомим перменную для которой ужесточим и пропишем правила:
set $special_limit 0;if ($http_host ~* 'example.com') {
set $personal_limit 1;
}
if ($http_host ~* 'www.example.com') {
set $personal_limit 1;
}if ($personal_limit = 1) {
rewrite ^(.*)$ /personal_limit last;
}
Далее, описываем локейшн:
location /personal_limit
{
internal;
access_log logs/personal_limit_access.log cachestatus;
error_log logs/personal_limit_error.log notice;proxy_connect_timeout 10;
proxy_send_timeout 10;
proxy_read_timeout 10;
proxy_buffering on;
proxy_ignore_headers "Expires" "Cache-Control";proxy_pass https://$host$request_uri;
proxy_cache personal_cache;set $request_uri_without_session $request_uri;
if ($request_uri ~* "(.*)(\?|&)(sid|PHPSESSID|session)=([^&]+)(.*)$") {
set $request_uri_without_session $1$5;
}
proxy_cache_key "$request_method$host$request_uri_without_session";proxy_cache_valid 200 3d;
proxy_cache_valid 304 1d;
expires 3d;
limit_conn by_vhost 10;
}
https://forum.antichat.ru/thread261628.html
Просмотров: 966