Исходные данные:
есть VPN с 1 ядром и 1Гб ОЗУ, тут крутится nginx, mariadb и phpbb 3.3.15
всё работало стабильно годами.
в последнее время на форм начался наплыв ботов (предположительно ИИ).
В начале я их банил подсетями:
Код: Выделить всё
server {
# Blocking bots by IP address
deny 2.57.22.0/23;
deny 3.128.0.0/9;
deny 4.192.0.0/12;
deny 4.224.0.0/12;
deny 4.240.0.0/12;
deny 5.0.48.0/21;
...Код: Выделить всё
if ($http_user_agent ~* AhrefsBot|Amazonbot|Android.1\.|Android.2|Android.3|Android.4|Android.5|Android.7|Android.8|Android.9|BackupLand|Baiduspider|ClaudeBot|DotBot|FriendlyCrawler|iPhone|iPod|Jooblebot|LinkpadBot|Macintosh|MegaIndex.ru|MJ12bot|NetcraftSurveyAgent|openstat.ru|PetalBot|Presto|SemrushBot|Sogou|SputnikBot|statdom.ru|Trident|WebDataStats) {
return 444;
}Я полагаю, что происходи следующее:Total Requests 100070
Unique Visitors 30949
1. на сайт приходят тысячи уникальных запросов
2. phpbb для каждого бота создаёт запись в в таблице phpbb_sessions, например сейчас там 66493 строчке.
3. в какой-то момент записей становиться слишком много и процесс mariadb начитает кушать всё процессорное время
это видно по htop. Если заглянуть в "SHOW PROCESSLIST;" внутри базы, то там видно запросики:
UPDATE phpbb3_sessions SET session_rand = ...
SELECT COUNT(session_id) AS sessions FROM phpbb3_sessions WHERE session_user_id = 1
4. сайт начинает выдать ошибку 503
если очистить таблицу phpbb_sessions, то сайт начинает оживать.
Добавлять подсети в блокировку уже устал. Есть ли какой-то другой способ, чтобы сайт не падал?
Может подтюнить что-то, чтобы медленно, но сайт работал?


