Nginx 负载平衡作为网关(无 SNAT)

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.4192.168.1.3。它们来自不同的网络。F5 充当网关,并使用此类目标地址平衡流量(不执行 SNAT)

所以我的问题是 - 我如何以这种方式部署 Nginx?我知道我可以在 Linux 级别上使用 iptables 和 ip 转发来充当网关并提供路由功能,但我不知道如何允许 Nginx 对目标不是此类192.168.2.4Linux 机器本身的 IP(它是池成员之一的实际地址)的连接进行负载平衡,并且不执行 SNAT。

我考虑过使用iptableswithREDIRECT但是我不确定 Nginx 是否支持这样的部署。

答案1

我在 nginx 网站上找到以下文章:

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

而且它似乎甚至在 Nginx 开源版本上也受支持。-j REDIRECT虽然这种方法似乎没有使用,但使用了备用路由表和一些用于出口的数据包标记机制。我还没有弄清楚从 iptables 和 Linux 数据包流的角度来看它究竟是如何以及为什么起作用的。

看上去相当棘手。

答案2

如果我理解正确的话,你想在 nginx 本身上进行负载平衡。你可以按照以下方式进行: NGINX 负载均衡

相关内容