首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(起搏器) Nginx使用主IP地址而不是虚拟IP与web服务器通信

(起搏器) Nginx使用主IP地址而不是虚拟IP与web服务器通信
EN

Server Fault用户
提问于 2016-05-09 16:17:28
回答 1查看 1.1K关注 0票数 3

我已经建立了一个双节点集群(主动/被动),并将Cor产c/Pac怪机和nginx作为反向代理。操作系统是RHEL7,目前该机器只有一个网络接口。

我配置了两个资源:

  • 集群-用于共享虚拟IP的vip
  • nginx的反向代理

以下是这两种资源的声明:

代码语言:javascript
复制
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吗?这是很好的实践吗?我不想做任何蠢事,所以如果你认为我不应该那样做,我很乐意听到为什么。

问候

EN

回答 1

Server Fault用户

回答已采纳

发布于 2016-05-09 23:12:53

我不认为这是告诉起搏器只使用虚拟IP的问题,而是告诉Nginx只使用虚拟IP的问题。

我不是Nginx专家,但是通过阅读他们的文档,我发现了一个名为proxy_bind的配置指令。我相信,这可能是你需要设置的,以获得理想的行为。来自Nginx文档这里

如果代理服务器有多个网络接口,有时可能需要选择特定的源IP地址来连接到代理服务器或上游。如果NGINX后面的代理服务器被配置为接受来自特定IP网络或IP地址范围的连接,这可能会很有用。

票数 3
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/775695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档