Отвечу на некоторые из Ваших вопросов, они особо актуальны и думаю при ответе на них частично отвечу на другие:
Числятся ли эти айпишники в спам-базах
Да, с этих IP приходит спам в комментарии к постам, об этом так же сообщает сервис Akismet.
Вместе с последней картинкой просто просится график посещаемости сайта :)
Суммарно он не изменился, по данным Яндекс Метрики
Ну я не очень то понял, почему конкретно тормозит база
Тормозит совсем не база, а у хостинга есть абстрактная величина «CP» — которая имеет разумные рамки и при превышении рамок сообщает «Эй, клиент, у тебя превышен отведённый тебе лимит нагрузки на центральный процессор, сделай что нибудь, а то мы выключим сайт». Да, конечно нужно уменьшить количество запросов к БД генерируемых 1-й страницей сайта, но требовалось именно потушить пожар (снизить нагрузку, что бы не получить санкции). Пожар потушен, можно проводить анализ.
Как вы поняли что это боты?
По заголовкам браузера
По запросам POST и GET. Например бот «прозванивает» роуты сайта на наличие тех или иных плагинов которые видимо имеют уязвимость(но этих плагинов у меня нет)
впс — это свобода, но в процентном отношении это на 50% дороже того что используется сейчас (т.е экономически получится не обоснованно), но при этом ещё возможны варианты оптимизации что бы удержаться в рамках тарифа.
В качестве мидлвар можно сделать связку с redis или memcached, но это уже другая история и пожалуй другая статья, хотя и возможна на приведённом в статье хостинг провайдере.
Сайт сам по себе, я бы сказал, достаточно быстрый, возможно не оптимален с точки зрения большого количества запросов к бд. Но видимо то что этот сайт достаточно старый его пытаются парсить все кому не лень или он по историческим просчётам попал в какие либо базы агрегаторов контента.
Сам сайт носит СМИ направленность для провинциального города.
У nginx в этом плане много гибкости. На сайте одного крупного вендора продуктов здорового питания используется блокировка от атак именно на на основе nginx. Достаточно быстрое решение, но в случае крупного вендора — свой сервер.
С парсингом лог файла, тоже отличная идея. Но у хостеров это подключаемая опция, т.е ведение лога начинается после активации этой опции.
Ну и запись в БД «живых запросов» мне показалась более быстрой с точки зрения реализации
Для крупных порталов, да — это возможно. Но в статье я рассматривал небольшой ресурс провинциального масштаба.
Так же всегда есть возможность самостоятельно проверить IP (кто, от куда) и скорректировать правило.
Или пойти дальше и блокировать таких «ботов» на определённое время Ещё извращённей вариант, это показывать заглушку до основного роута cms с предложеним ввести капчу :)
Так как «пишу» и «писал» ранее много парсеров, то в своей работе использовал и simplehtmdom, затем по каким-то причинам перешёл на phpQuery (перешёл наверное из за того что сначала просто попробовал, а потом заметил кратное увеличение скорости работы парсреа) и она мне понравилась больше (она это библиотека). Совсем недавно попробовал для парсинга DomCrawler от Symfony и мне она по удобству показалась такой же как phpQuery. Даже сказал бы так что «phpQuery»==«DomCrawler» для разбора страниц.
PS: Про удобство DomCrawler конечно же имею ввиду вкупе с css-selector пакетом
Вообще отличная идея писать подобный код:
1. Для саморазвития и мотивации
2. Для получения замечаний от неравнодушных
3. Думаю даже получится заработать на что-то
Статья понравилась, бросилось в глаза только наименование функций
Автор молодец. Сам бы продал свои проекты для WP, которые сейчас имеют хорошую популярность, но поддерживать их уже нет времени.
Кстати некоторые пользователи неожиданно спрашивают кошелёк и перечисляются туда ну совсем не неожиданные деньги.
Да, с этих IP приходит спам в комментарии к постам, об этом так же сообщает сервис Akismet.
Суммарно он не изменился, по данным Яндекс Метрики
Тормозит совсем не база, а у хостинга есть абстрактная величина «CP» — которая имеет разумные рамки и при превышении рамок сообщает «Эй, клиент, у тебя превышен отведённый тебе лимит нагрузки на центральный процессор, сделай что нибудь, а то мы выключим сайт». Да, конечно нужно уменьшить количество запросов к БД генерируемых 1-й страницей сайта, но требовалось именно потушить пожар (снизить нагрузку, что бы не получить санкции). Пожар потушен, можно проводить анализ.
В качестве мидлвар можно сделать связку с redis или memcached, но это уже другая история и пожалуй другая статья, хотя и возможна на приведённом в статье хостинг провайдере.
Я не утверждаю что опубликованное мной решение — хорошее, это всего лишь вариант.
Сам сайт носит СМИ направленность для провинциального города.
Ну и запись в БД «живых запросов» мне показалась более быстрой с точки зрения реализации
Так же всегда есть возможность самостоятельно проверить IP (кто, от куда) и скорректировать правило.
Или пойти дальше и блокировать таких «ботов» на определённое время
Ещё извращённей вариант, это показывать заглушку до основного роута cms с предложеним ввести капчу :)
PS: Про удобство DomCrawler конечно же имею ввиду вкупе с css-selector пакетом
1. Для саморазвития и мотивации
2. Для получения замечаний от неравнодушных
3. Думаю даже получится заработать на что-то
Статья понравилась, бросилось в глаза только наименование функций
Кстати некоторые пользователи неожиданно спрашивают кошелёк и перечисляются туда ну совсем не неожиданные деньги.