Получил уведомление от мониторинга о повышенном потреблении ресурсов.
Пошёл смотреть - какие-то пидорасы дрочат мой Forgejo несмотря на то, что там в robots.txt запрещена индексация абсолютно всем.
Причём, дрочат хитро:
маскируясь под браузеры
используя адресы из нескольких /16 (!) подсетей (47.79.0.0/16, 47.82.0.0/16, ...).
Слава Сысоеву - запилил маппинг этих самых /16 подсетей и поставил рейт-лимит в 2 запроса в секунду на подсеть после первых 100 запросов.
Пусть теперь поиндексируют репозитории, сучечки.
#shit #crawling #git #Forgejo #Nginx #server #log #bots
@L29Ah
Каким инструментом
limit_req_zone,limit_conn_zone,limit_req,limit_conn.Зарейтлимиченные в очередь встают и ждут ответа или получают эксплицитный отлуп?
429с ноги в лицо.Это мой личный Forgejo. Если кто-то туда пришёл и неистово дрочит страницы с сорцами, то идут они нахуй.
А склонировать через Git даже жирную репу это не помешает:
Cloning into 'masto-fe-gts-forced-instance'... remote: Enumerating objects: 229278, done. remote: Counting objects: 100% (114/114), done. remote: Compressing objects: 100% (76/76), done. remote: Total 229278 (delta 39), reused 68 (delta 32), pack-reused 229164 (from 1) Receiving objects: 100% (229278/229278), 236.51 MiB | 6.50 MiB/s, done. Resolving deltas: 100% (169032/169032), done.Или просто бегло попереключать страницы нормальному юзеру тоже, т.к. там выдаётся очень жирный кредит в N первых запросов на подсеть и только потом начинается лимит.