Я пытаюсь настроить 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 на уровне Linux, чтобы вести себя как шлюз и обеспечивать функциональность маршрутизации, но я не знаю, как разрешить Nginx загружать соединения с балансировкой с местом назначения 192.168.2.4
это не IP-адрес самого Linux-бокса (это фактический адрес одного из участников пула) и без выполнения SNAT.
Я думал об использовании iptables
с участием REDIRECT
но я не уверен, поддерживает ли Nginx такое развертывание.
Если я вас правильно понял, вы хотите сделать балансировку нагрузки на самом nginx. Сделать это можно было следующим образом: Балансировка нагрузки NGINX
На сайте nginx я нашел следующую статью:
https://www.nginx.com/blog/ip-transparency-direct-server-return-nginx-plus-transparent-proxy/
И, похоже, он даже поддерживается в версии Nginx с открытым исходным кодом. Этот метод, похоже, не использует -j REDIRECT
хотя, но альтернативные таблицы маршрутизации и некоторый механизм маркировки пакетов для выхода. Я еще не понял, как и почему это работает именно с точки зрения iptables и потока пакетов Linux.
Выглядит довольно сложно.