В общем возникла необходимость ограничивать скорость соединения исходя из текущего времени. У нас виртуальный (шаред) хостинг, где несколько сайтов на одном адресе. Для работы с клиентами-людьми, мощности сервера вполне достаточно и даже с запасом и всё бы хорошо, пока не приходят боты. Когда хотя бы 5 достаточно тяжёлых сайтов (а часто бывает одновременно и больше) начинают одновременно пилить Яндекс, Гугл, Ремблер, Яху и MsnBot, то нагрузка сразу прыгает до небес. Хорошо помогает конструкция вида:
if ($http_user_agent ~ Yandex|Rambler|Aport|Googlebot|msnbot|Yahoo) { set $limit_rate 2k; }
за саму возможность существования которой, Игорю огромное спасибо!
Однако, как вы понимаете, щас поисковики пошли зело борзые и им ещё подавай не просто чтобы можно было индексировать, а чтобы страницы отдавались быстро!
Так вот, хотелось бы устанавливать $limit_rate в зависимости от текущего времени. Например, днём работают пользователи и ставим низкую скорость. Ночью на сайтах почти никого нет и скорость для ботов можно и повысить!
Да, можно найти обходной путь, написать скрипт, подменять конфиги, перезагружать nginx, но возможно есть более удобный способ?