JustinBieber
@JustinBieber
Звизда

Почему сайт падает от зажимание F5?

Имеется сайт на DLE, раньше сидели на обычном хостинге, и заметили уязвимость.
Зажимаешь F5 на сек 15-20 и сайт просто падает на минут пять.

С недавних пор переехали на VPS, теперь сайт не виснет при бекапах БД, перестал виснуть и при F5, максимум теперь после зажатия просыпается через сек 10.

Давно ДДоСили так игровой сайт, наверное это карма? :D
  • Вопрос задан
  • 1180 просмотров
Решения вопроса 1
@Eugene_Eesti
Поставьте на сервер Mod_Evasive и будет Вам счастье вселенское.
Для Debian / Ubuntu
apt-get update && apt-get upgrade --show-upgraded

apt-get install libapache2-mod-evasive -y

После завершения установки, заходим в конфигурационный файл evasive.conf
mcedit /etc/apache2/mods-available/evasive.conf

содержимое файла. Необходимые строки нужно раскоментироовать!

#DOSHashTableSize 3097
#DOSPageCount 2
#DOSSiteCount 50
#DOSPageInterval 1
#DOSSiteInterval 1
#DOSBlockingPeriod 10
#DOSEmailNotify you@yourdomain.com
#DOSSystemCommand "su - someuser -c '/sbin/... %s ...'"
#DOSLogDir "/var/log/mod_evasive"

Можно этот код еще добавить в Apache2
mcedit /etc/apache2/apache2.conf

В завершении создадим директорию логов
mkdir /var/log/mod_evasive

и перезагрузим Apache2
/etc/init.d/apache2 restart

-------------------
  • DOSHashTableSize: Размер хэш таблицы, которая используется для хранения трэка активности на один IP. Увеличение этого числа обеспечит более быстрый поиск сайтов, которые клиент посетил в прошлом, но может повлиять на общую производительность, если оно слишком велико.
  • DOSPageCount: Числоо идентичных запросов к определённому URI (например, к файлу, который обслуживает Apache), которые посетитель может сделать через интервал DOSPageInterval.
  • DOSSiteCount: похоже на DOSPageCount, но относится к тому, как много общих запросов может быть сделано к сайту за интервал DOSPageCount.
  • DOSBlockingPeriod: Если посетитель превысил лимиты, установленные DOSSPageCount или DOSSiteCount, он/она будут занесены в чёрный список на период времени DOSBlockingPeriod. Во время этого интервала, любой запрос, приходящий от него/неё, будет возвращён с ошибкой 403 Forbidden.

Так же можно на уровне Nginx прописать количество одновременных соединений.
Никакая CMS тут не причем, это криво настроенный сервер.
Луче всего Вам нанять админа который грамотно настроит сервер.

Вердикт.
- "Зачем лезть в болото если брода не знаешь!".

Вот как то так. навеяло :)
А этот ресур Вам будет в помощь https://gtmetrix.com/
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
@pudovMaxim
web-developer
Кривой сайт, кривые руки, кривой VPS. Может все сразу.

По существу вопроса: проверить производительность сайта, найти узкие места. Оценить требования к железу. Проверить кэш. Перестать жать ф5.
Ответ написан
Комментировать
vlad7rpk
@vlad7rpk
Linux-админ. Стаж 5 лет
Это называется http flood. Методов защиты полно в сети. Обычно ставится nginx и в нем прописываются ограничения количества запросов в период времени с одного IP.
Ответ написан
@SergeyZelensky-Rostov
сервак настроен не правильно/не оптимально, нужно искать в чем причина, что на vds (параметры), что за стек на бэкенд
Ответ написан
@azsx
Кэширование, наверное, совсем нет.
Ответ написан
odies
@odies
Фрилансер, электронщик
Хостинг или vds не причем. Это известный баг DLE. Решается добавлением кода в index
<?php
session_start(); // Начинаем сессию
$ts = time(); // Получаем текущее время
$s_time = (empty($_SESSION["time"]))? 0: $_SESSION["time"]; // Если пользователь обращается к скрипту впервые, то устанавливаем значение 0, иначе берём его из сессии
$_SESSION["time"] = $ts; // Обновляем значение сессии
if ($ts - $s_time > 2) { // Если с момента предыдущего обращения прошло больше 2 секунд
echo "Тут сложный скрипт"; // Выполняем скрипт
}
else echo "Хватит постоянно обновлять страницу!"; // Выводим сообщение об ошибке
?>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы