Балансировка нагрузки Nginx в качестве шлюза (без SNAT)

Я пытаюсь настроить Nginx в качестве последнего средства резервного копирования для F5-BIG-IP, и я не уверен, возможно ли настроить его так, чтобы он вел себя так же, как F5, с точки зрения обработки трафика?

F5 в настоящее время развернут как шлюз в L3 следующим образом (все адреса здесь начинаются с 192.168.0.):

edge router .13/30 --- .14/30 F5 .10/30 --- .9/30 core router --- other networks

пограничный маршрутизатор выполняет DNAT по различным адресам (которые когда-то были отдельными серверами), например 192.168.2.4 или же 192.168.1.3, Они из разных сетей. F5 работает как шлюз и балансирует трафик с такими адресами назначения (без выполнения SNAT)

Итак, мой вопрос - как я могу развернуть Nginx таким образом? Я знаю, что могу использовать iptables и ip forwarding на уровне linux, чтобы вести себя как шлюз и обеспечивать функциональность маршрутизации, но я не знаю, как разрешить Nginx загружать соединения балансировки с назначением 192.168.2.4 это не IP самого такого Linux-бокса (это фактический адрес одного из членов пула) и без выполнения SNAT.

Я думал об использовании iptables с REDIRECT но я не уверен, поддерживает ли Nginx такое развертывание.

2 ответа

Если я вас правильно понял, вы хотите выполнить балансировку нагрузки на самом nginx. Вы можете сделать это следующим образом: Балансировка нагрузки NGINX

Я нашел следующую статью на сайте nginx:

https://www.nginx.com/blog/ip-transparency-direct-server-return-nginx-plus-transparent-proxy/

И даже кажется, что он поддерживается в версии с открытым исходным кодом Nginx. Этот метод, кажется, не использует -j REDIRECT хотя, но альтернативные таблицы маршрутизации и некоторый механизм маркировки пакетов для выхода. Я еще не понял, как и почему он работает именно с точки зрения потока пакетов iptables и Linux.

Это выглядит довольно сложно.

Другие вопросы по тегам