2014-05-29 3 views
0

Каждый месяц или два рой робота посещает мой сайт и открывает соединения так быстро, что мое текущее значение max_user_connection 25 (увеличит его до 75). В настоящее время я перезапускаю сервер, и он работает отлично, пока не появится следующий рой. Это интернет-магазин, запрограммированный в perl, который пытается получить данные с помощью соединения DBI.mysql max_user_connections bot traffic

Итак, у меня есть некоторые вопросы: Поможет ли проблема решить проблему через некоторое время или будет открыт процесс до сброса и попытаться получить информацию из заблокированной БД? Возможно ли выполнить небольшой запрос, чтобы проверить, чтобы максимальные пользовательские соединения в БД выходили, если они были высокими? Любая другая идея, чтобы получить защиту от DOS-атак или ботов-рой (подумал о том, как настроить азиатские IP-адреса в htaccess)?

ответ

2

Вы можете обнаружить (например, роботы) с помощью модуля. Например, HTTP::BrowserDetect.

use HTTP::BrowserDetect; 

my $browser = HTTP::BrowserDetect->new($user_agent_string); 
if ($browser->robot()) { 
    # dont open an mysql connection, 
    # return a cached version of the requested page 
    # or something like that 
    ... 
} 
+2

Я являюсь разработчиком HTTP :: BrowserDetect. Это очень хороший вариант для этого модуля. – oalders

Смежные вопросы