Я хочу прекратить подавать запросы на мои серверы, если загрузка этих серверов превышает определенный уровень. Любой, кто уже занимается серфингом на сайте, по-прежнему будет маршрутизироваться, но новое соединение будет отправлено на страницу занятости статического сервера, пока нагрузка не упадет ниже предварительно определенного уровня.Балансировка нагрузки с nginx
Я могу использовать куки-файлы, чтобы позволить текущим клиентам, но я не могу найти информацию о том, как выполнять маршрутизацию на основе пользовательской метрики загрузки.
Может ли кто-нибудь указать мне правильное направление?
Спасибо за ответ: возможно, я могу использовать $ upstream_response_time для управления этим. Я мог бы рассчитать среднее время отклика на всех серверах, если это опустится до некоторого неприемлемого уровня, а затем направит запрос на занятую страницу, иначе пропустит его. Используя параметр баланса «less_conn», запрос будет передан серверу с наименьшими соединениями и, надеюсь, наименьшая загрузка. –
Звучит неплохо. Я думаю, что простота создания стандартного решения для вас будет выиграна, если вы сможете настроить его на свои нужды. –
Я не вижу способа заставить nginx перестать обслуживать некоторый предварительно определенный уровень нагрузки, не открывая модуль балансировки нагрузки и ничего не делая с этим. Я не хочу, чтобы сервер backend сервера возвращался на сервер, так как к тому времени нагрузка будет слишком высокой ... –