Балансировка нагрузки 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.
Это выглядит довольно сложно.