sergoxa 2 Опубликовано: 19 июля Рассказать Опубликовано: 19 июля (изменено) Паразиты намерено долбят страницы результата поиска, тем самым загружают мне CPU на сервере. Кто знает как правильно составить ограничение на количество запросов для параметров URL в локейшенах: site.com/index.php?story=слово&do=search&subaction=search site.com/index.php?do=search&subaction=search&search_start=2&full_search=0&story=слово тоесть для /index.php?story и /index.php?do=search Один общий limit_req на весь сайт стоит и нормально работает, но необходимо еще отдельно с другими лимитами сделать для поиска. Всю голову поломал никак не получается для параметров URL задать. Пробовал и путем создания map с условиями: if ($args ~ ^story=){ limit_req zone=search_zone burst=5 nodelay; } Но оказывается limit_req внутри if конструкции не поддерживается. Пробовал и с регулярным выражением в локейшене http { limit_req_zone $binary_remote_addr zone=search_zone:10m rate=1r/s; } location ~* /index\.php.*(\?|&)story= { limit_req zone=search_zone burst=5 nodelay; } Но тоже безрезультатно, не хочет работать. Либо я плохо разбираюсь в этом деле. Может у кого был опыт, поделитесь мыслью или готовой наработкой. Наверняка кто-то тоже сталкивался с таким нюансом. Поисковые страницы реально самое слабое место. К слову, банить адреса флудеров тоже бесполезно, у них динамика, либо прокси. А лимиты покрайней мере будут значительно экономить ресурсы сервера. Изменено 19 июля пользователем sergoxa Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 19 июля Рассказать Опубликовано: 19 июля Используйте fail2ban и по логам сервера смотрите кто в определенный промежуток времени часто искал того сразу в бан сервера на несколько часов, это намного эффективнее limit_req Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.