Веб-сокеты nginx proxy_redirect, а не прокси
Мне удалось успешно настроить nginx в качестве балансировщика нагрузки для запросов прокси веб-сокетов (с SSL), однако, на самом деле, я думаю, что мне нужно иметь возможность перенаправить их. Моя желаемая конфигурация состоит в том, чтобы nginx располагался перед фермой серверов веб-сокетов на разных машинах и перенаправлял (не передавал) на них циклически. Я не хочу использовать прокси, потому что тогда nginx просто заканчивает тем, что открывает два параллельных соединения (входящее + исходящее) на балансировщике нагрузки. Таким образом, даже если моя ферма веб-сокетов может обрабатывать много одновременных подключений на машину, общее количество одновременных подключений ограничено балансировщиком нагрузки. Я хочу, чтобы у клиента было прямое соединение с сервером веб-сокетов, который не проходит через nginx.
Я искал пример того, как кто-то другой делает это, и не нашел ничего, что кажется очень актуальным. Я думаю, что директива, которую я хочу использовать, - это proxy_redirect, но, как уже упоминалось, документация и другие посты не содержат точных указаний по использованию, как описано.
Пытаюсь ли я поставить квадратный колышек в круглое отверстие? То, что я пробовал до сих пор, приводит к 404-м годам. Если возможно, кто-нибудь может порекомендовать установку или где я могу найти больше информации? Если это неоднозначный / глупый / бессмысленный вопрос, пожалуйста, не стесняйтесь сказать мне, почему! Я не чувствую боли в Интернете - просто хочу выяснить, как масштабировать мои настройки...
Я имею в виду альтернативный подход, при котором IP-адрес сервера websocket может обслуживаться через js. У кого-нибудь есть опыт с чем-то подобным? Bueller...
1 ответ
Это может быть слишком упрощенно, но почему бы не использовать DNS-балансировку нагрузки? т.е. несколько IP-адресов для одного хоста, и клиент автоматически выберет один из них наугад.