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

Балансировка нагрузки 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 на уровне 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.

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