- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева

Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть выделенный сервер. На нем стоит высокопосещаемый сайт на частично переписанной CMS Joomla 1.5. При каждом посещении сайта для посетителя открывается сессия, которая записывается в куку, и пишется в специальную таблицу MySQL, которая имеет тип MEMORY (в памяти).
Периодически на сайт приходят боты. И шлют кучу запросов. Что именно они делают - парсят сайт для воровства контента или ищут уязвимости - не знаю. На сервере есть программная защита от небольших DDoS - при большом кол-ве запросов с одного IP он банится. Но тут ситуация иная - эти хитрые боты не шлют кучу запросов, а работают равномерно, шля по 2-3 запроса в секунду, не превышая лимит, и делают это с нескольких IP.
Т.к. боты не дружат с куками, каждый их запрос создает отдельную сессию. В итоге после нескольких минут нашествия ботов с каждым их запросом таблица сессий растет как на дрожжах, переполняется и база ложится.
Тип MEMORY имеет ограничение в кол-во строк, в нашем случае 8192, и при переполнении сайт виснет. Перевести эту таблицу в MyISAM нецелесообразно, т.к. упадет скорость работы, да и она запросто может превысить размер в несколько десятков гигов и положить уже сам сервис мускула.
Отменить создание сессий для гостей невозможно, т.к. этот кривой механизм заложен в само ядро CMS, хотя смысл этого не понятен.
Что можно предпринять для борьбы со злом?
Анализировать логи, отстреливать ботов.
Самое простое решение - перести сессии в memcache.
Нет, самое простое - кеширование на стороне nginx
1. Увеличить размер memory таблицы (max_heap_table_size). Ограничение в "8192 строк" как-то не серьёзно.
2. Кто подчищает эту таблицу сессий? Когда и при каком условии? Можно чистить самому когда нужно...
3. Переписать движок cms, в той части, где он делает всем сессии. Ядро-мудро, это всё не важно. Возможно всё.
Andreyka верно посоветовал - у меня есть сайт на Joomla 1,5 в пик бывало до 600 чел онлайн, в сутки до 100.000 хостов.
С кешированием Нгихс даже такой нагрузки сервер почти не замечал. Сессии в memcache я тоже пробовал, но потом отказалася, медленно работало даже на сокетах.
А таблица сессий у меня тоже мемори.
vois, джумла, тем более старая версия - это криво.
Соответственно и решения будут в дальнейшем, в основном кривые.
Один из способов различить ботов и реальных людей - js.
т.е. можно прописать при загрузке страницы обращение js к спец. файлу, что позволит ставить нужную метку.
vois, изучайте логи nginx. Очень часто боты создают необычные запросы: некорректные рефереры, запросы с лишними слэшами, непонятные или идентичные для всех IP юзер-агенты. Это все легко перебанить.
Также изучите страны ботов. В последнее время сильно активными по выкачиванию контанта являются Саудовская аравия и Арабские Эмираты. Если страны вам не интересны отрежьте их с помощью geoip.
vois, джумла, тем более старая версия - это криво.
Соответственно и решения будут в дальнейшем, в основном кривые.
Один из способов различить ботов и реальных людей - js.
т.е. можно прописать при загрузке страницы обращение js к спец. файлу, что позволит ставить нужную метку.
Представьте, например, что это не боты, а реальные посетители... Источник проблемы решать, а не его последствия.
Источник проблемы решать, а не его последствия.
Экий вы ортодокс. По мне - надо искать самый простой (дешевый) способ.
Нет, самое простое - кеширование на стороне nginx
Лучше всего их отстреливать при помощи nginx :) (кстати, один из самых дурных - MajesticSEO)