AntiOverload модуль для WordPress от DLE » Окно в мир дизайна и компьютерной графики
popping..

Случилось мне однажды столкнуться с ситуацией, когда мой хостер предъявил мне претензию о том, что мой акаунт создаёт непомерно большую нагрузку на MySQL-сервер. Посмотрев логи, я заметил, что такую нагрузку создают программы-качалки, которые копируют сайт целиком на локальный компьютер. Во время обращения к странице происходит несколько sql-запросов к базе данных. А если учесть, что эти программы готовы скачивать сразу несколько страниц с сайта, то получается, что в секунду идёт от 3 до 10 запросов. При такой «атаке» серверу действительно приходится не сладко.
Решением я увидел ограничение доступа к сайту с одного ip-адреса чаще, чем один раз в 2 секунды. Проверка происходит без использования sql-сервера, поэтому идёт достаточно быстро.
Здесь я предлагаю php-скрипт, реализующий такую проверку.

Модуль предназначен для ограничения доступа к сайту или к страницам, где он включён.
Принцип работы в том, что запоминается ip-адрес и время обращения с этого адреса. И если в течение заданного времени происходит обращение с того же адреса, то ему выдаётся ошибка 503.Т.е Если вы нажмёте кнопку обновить 3 раза подарят,вам выдаст это сообщение

Установка модуля на движок WordPress:
*Сначала качаем сам код плагина. Скачать
*В корне сайта создаем папку tmp и выдаём права 777(Если папка есть,то не чего создовать не надо.)
*Открываем index.php и перед:

<?php
/* Short and sweet */
define(‘WP_USE_THEMES’, true);
require(‘./wp-blog-header.php’);
?>

Добавляем то что содержит архив antiOverload.txt. Все на этом установка завершена, теперь вы можете попробовать результат проделанной операции на своем блоге.
===============
Скачать: antioverload
Размер: 4.05 Kb
Автор: andruw
=============
Демо:
Заходим сюда: http://flashripper.net
Как только загрузилась страница,нажимаем быстро кнопку обновления страницы 4-6 раз подряд.

=====

Комментарий от bardo | Записано: Суббота, апреля 19, 2008 в 03:19

Спасибо, а есть ли какая-либо возможность определить, какие из частей сайта обращаются к БД? У меня индекс кушает на данный момент аж 38 запросов…

Like or Dislike: Thumb up 0 Thumb down 0

Комментарий от Lecactus | Записано: Суббота, апреля 19, 2008 в 13:33

Супер! Сейчас опробую, а то тоже заметил периодически гиганскую нагрузку даже с включенным суперкэшем

Like or Dislike: Thumb up 0 Thumb down 0

Комментарий от Lecactus | Записано: Суббота, апреля 19, 2008 в 14:28

Поставил, работает, но в TMP папке обнаружил такой ип

Name: crawl-15.cuill.com
IP: 208.36.144.6

Это что за робот не в курсе?

Like or Dislike: Thumb up 0 Thumb down 0

Комментарий от Lecactus | Записано: Суббота, апреля 19, 2008 в 14:32

и кстати отказывается работать на огромных постах (где много-много комментариев и естественно море запросов). Просто зависает сайт секунд на 20 и потом начинает открывать

Like or Dislike: Thumb up 0 Thumb down 0

Комментарий от Lecactus | Записано: Суббота, апреля 19, 2008 в 14:38

и еще момент – при включенном суперкэше фича не работает. т.е. если я пытаюсь обновить хоть 100 раз страницу которая в кэше лежит то она грузится каждый раз и мессаж не выдает

Like or Dislike: Thumb up 0 Thumb down 0

Комментарий от Lecactus | Записано: Суббота, апреля 19, 2008 в 14:44

поправка – с суперкэшем работает но проявляется по другому: допустим я гружу страницу много раз – она грузится нормально. но при открытии следующей страницы уже получаю 503

Like or Dislike: Thumb up 0 Thumb down 0

Комментарий от flashripper | Записано: Суббота, апреля 19, 2008 в 14:50

ну правильно в tmp будут лежать ip. незнаю, у меня сайт без кеширования и все прекрасно работает IMHO

Like or Dislike: Thumb up 0 Thumb down 0

Комментарий от flashripper | Записано: Суббота, апреля 19, 2008 в 14:53

Незнаю, че это за бот. Во всяком случыае, не стандартный к которым все привыкли

Like or Dislike: Thumb up 0 Thumb down 0

Комментарий от kosenka | Записано: Суббота, апреля 19, 2008 в 22:32

Eсть, как мне кажется, более качественная защита от флуда: http://php.spb.ru/other/_dima_noflood.php
Очень давно давно пользуюсь.

Like or Dislike: Thumb up 0 Thumb down 0

Комментарий от ATimofeev | Записано: Воскресенье, апреля 20, 2008 в 21:48

Не однозначное решение – сейчас собственноручно попытался открыть сразу несколько страниц этого сайта в разных вкладках – в результате увидел плагин в действии =]. Если уж хочется ограничивать по такому принципу ограничение один раз в 2 секунды, всетаки, стоило бы пересмотреть.

Like or Dislike: Thumb up 0 Thumb down 0

Комментарий от Данила | Записано: Понедельник, апреля 21, 2008 в 07:44

Штука, наверное, полезная, но прежде чем использовать её хотелось бы узнать как на неё реагируют поисковые боты? Ведь они оказываются забаненными этим плагином? Хорошо бы предусмотреть в админке редактируемый список исключений, где можно было бы указывать адреса или имена поисковых ботов. которых бы не касались ограничения на загрузки с одного ip.

Like or Dislike: Thumb up 0 Thumb down 0

Комментарий от flashripper | Записано: Понедельник, апреля 21, 2008 в 16:34

Это конечно, не идеальное решение, но оно помогает :-)
Несколько вкладок одного сайта, это же тоже нагрузка или нет?

Like or Dislike: Thumb up 0 Thumb down 0

Комментарий от ATimofeev | Записано: Понедельник, апреля 21, 2008 в 17:47

Две или три – смехотворная нагрузка. С учетом комментария Данилы такой способ действительно скорее зло, чем благо. Я бы спасался жестким кэшированием.

Like or Dislike: Thumb up 0 Thumb down 0

Комментарий от Коллекционер бизнес-идей | Записано: Суббота, мая 17, 2008 в 00:51

А поисковые роботы плагин не отпугнет? Полагаю, они чаще, чем раз в две секунды запрашивают данные.

Like or Dislike: Thumb up 0 Thumb down 0

Комментарий от flashripper | Записано: Воскресенье, мая 25, 2008 в 16:38

СПаибо, возьму себе на заметку теперь буду знать

Like or Dislike: Thumb up 0 Thumb down 0

Комментарии закрыты.

Читайте другие посты вебиастера: