У меня есть 4 веб-сервера за cloudflare и loadbalancer, nginx - веб-сервер, php-fpm управляет страницами php. Я не знаю, как блокировать простую атаку дос ...
Я могу обнаружить эту атаку с помощью модуля http_limit_req из nginx
http://wiki.nginx.org/HttpLimitReqModule
но это вовсе не блокирует атаку, да, это может смягчить, но веб-серверы снова и снова попадают, и php-fpm достигает 80%, и через минуту сайт недоступен.
Я пытаюсь найти способ заблокировать такой запрос.
Я знаю, как заблокировать определенный IP-адрес или определенный идентификатор пользователя с помощью nginx, но я хочу сделать это автоматически. Я думаю, что не могу заблокировать ip с помощью iptables, потому что запрос приходит от loadbalancer :(, но я все еще могу определить правильный IP-адрес с помощью set_real_ip_from и real_ip_header X-Forwarded-For с nginx.
У меня есть файл журнала (error.log), заполненный правильным IP-адресом, как вы можете видеть:
2012/03/27 18:34:02 [ошибка] 31234 # 0: * 1283 ограничение подключений зоной «подготовка», клиент: XX.XX.XX.XXX, сервер: www.xxxxxxx.com, запрос: "HEAD / it HTTP / 1.1", хост: "www.xxxxxxx.com"
Кто-то имеет идею и может научить меня, как автоматически блокировать этот ip?