Компания NGINX перенесла в кодовую базу свободного http-сервера nginx реализацию системы балансировки TCP-соединений, ранее поставляемой только в коммерческом продукте NGINX Plus. Новый балансировщик stream дополнил ранее доступные системы проксирования соединений с web- и почтовыми серверами.

Stream в nginx реализует похожие на HAproxy средства балансировки произвольных TCP-соединений, дающие возможность организовать проброс и распределение по нескольким узлам такого трафика, как обращения к СУБД, системам аутентификации, каталогам LDAP, RTMP-серверам, VoIP-системам или службам, применяющим SSL-шифрование. Предоставляется несколько методов балансировки: round-robin (круговой перебор, при котором соединения равномерно распределяются среди обработчиков), least-connections (соединение перенаправляется к серверу, у которого меньше активных соединений), least_time (перенаправление на сервер, демонстрирующий наиболее высокую отзывчивость) и hash (перенаправление на основе хэша от определённого пользователем параметра, например, IP). Для каждого сервера можно задавать максимальное число соединений и вес.

Кроме распределения нагрузки модуль stream также можно использовать для создания отказоусточивых конфигураций. Присутствуют средства обеспечения высокой доступности - nginx на лету оценивает статус сервера-обработчика и на какое-то время исключает его из работы в случае выявления проблем. Доступны как пассивные (оценка сбоев соединения), так и активные (периодическая отправка специальных проверочных запросов и оценка корректности ответов) механизмы проверки работы серверов. Для только что запущенных новых серверов предусмотрена возможность медленного старта, когда нагрузка наращивается постепенно, давая возможность прогреть кэш. Имеется возможность назначения запасных серверов, обращение к которым будут осуществляться только в случае проблем с основными серверами.

Источник: http://www.opennet.ru/opennews/art.shtml?num=42076