Назад | Перейти на главную страницу

Прозрачная балансировка нагрузки TCP с помощью NGINX / HAproxy

Я пытался несколько дней и все еще не смог заставить прозрачный балансировщик нагрузки TCP работать с HAproxy / NGINX.

Проблема в том, что все работает правильно, пока я не попробую включить прозрачность. И NGINX, и HAproxy выполняют балансировку нагрузки, но предоставляют localhost в качестве IP-адреса пользователя.

Что я пытался это изменить:

Итак, общий вопрос: у меня есть балансировка нагрузки HAproxy / NGINX на x.x.x.x: 30000. На том же компьютере у меня есть приложения в x.x.x.x: 30001 и x.x.x.x: 30002.

Как я могу сбалансировать нагрузку в этой конфигурации? Какие дополнительные правила маршрутизации требуются? Нужно ли мне создавать виртуальную подсеть для перенаправления? Потому что на данный момент кажется, что балансировщик нагрузки может подключиться к приложению, но не может вернуть ответ пользователю.

Я не уверен, что вы можете сделать это на одном хосте.

TPROXY сложен даже в лучшие времена. Я когда-либо видел, как он хорошо работает с двумя отдельными подсетями И отдельными хостами (виртуальными или физическими).

Вы уверены, что не можете использовать что-то попроще, например DSR Режим?

Я знаю, что LVS DSR работает на том же хосте.

Или как насчет ПРОТОКОЛ HAPROXY PROXY (если ваше приложение поддерживает это).

Теоретически я предполагаю, что TPROXY должен быть возможен на одном хосте, поэтому, возможно, кто-нибудь умный ответит :-).