我已经建立了一个双节点集群(主动/被动),并将Cor产c/Pac怪机和nginx作为反向代理。操作系统是RHEL7,目前该机器只有一个网络接口。
我配置了两个资源:
以下是这两种资源的声明:
pcs resource create cluster-vip ocf:heartbeat:IPaddr2 ip=192.168.0.1 cidr_netmask=24 op monitor interval=30s
pcs resource create reverse-proxy systemd:nginx op monitor interval=5s meta failure-timeout=60s
pcs constraint colocation add reverse-proxy with cluster-vip INFINITY
pcs constraint order cluster-vip then reverse-proxy昨天,我在做网络捕捉时发现了一个意想不到的行为。在与客户端通信时,活动节点使用虚拟IP地址(192.168.0.1)。当与位于内部网络上的web服务器通信时,它使用接口的主IP地址而不是vip (192.168.0.2或192.168.0.3取决于活动节点)。
因此,我不得不在防火墙上创建两个不同的规则(一个用于node1,另一个用于node2),而不是仅仅允许vip与web服务器通信。我计划将其他节点添加到集群中,这样就方便了,不必一个接一个地允许每个节点,而只允许vip一劳永逸。
这种行为有合乎逻辑的解释吗?有办法告诉起搏器只使用vip吗?这是很好的实践吗?我不想做任何蠢事,所以如果你认为我不应该那样做,我很乐意听到为什么。
问候
发布于 2016-05-09 23:12:53
我不认为这是告诉起搏器只使用虚拟IP的问题,而是告诉Nginx只使用虚拟IP的问题。
我不是Nginx专家,但是通过阅读他们的文档,我发现了一个名为proxy_bind的配置指令。我相信,这可能是你需要设置的,以获得理想的行为。来自Nginx文档这里。
如果代理服务器有多个网络接口,有时可能需要选择特定的源IP地址来连接到代理服务器或上游。如果NGINX后面的代理服务器被配置为接受来自特定IP网络或IP地址范围的连接,这可能会很有用。
https://serverfault.com/questions/775695
复制相似问题