我有一个 Azure 标准公共负载均衡器,后面有几台 Web 服务器虚拟机。我还需要每个虚拟机都有一个单独的公共静态 IP(非负载平衡)用于管理,因此我为每个虚拟机的 NIC 添加了公共 IP。网络安全组位于虚拟机子网上以控制访问。
我的设置可以运行,但是存在一些问题。
为了使 VM 上的 nginx 流量负载平衡,我(似乎)需要添加一条 NSG 规则,允许“Internet”访问 nginx 正在监听的端口(7080、7443),目标为 VM 所属的应用程序安全组。然而,这也会在公共 IP 地址上打开通向 Internet 的端口,而这并不是我想要的。
访问规则是否正确?
有没有办法控制公共 IP 上的访问,至少让你无法通过 ALB 以外的方式连接到 nginx?
答案1
访问规则是否正确?
是的,这是正确的,如果您希望将流量负载平衡到虚拟机上的 nginx,则需要打开 nginx 正在监听的这些端口。
有没有办法控制公共 IP 上的访问,至少让你无法通过 ALB 以外的方式连接到 nginx?
不幸的是,NSG 无法仅对 ALB 进行控制访问。通常,您可以使用 NSG 按优先级过滤子网或 NIC 级别的网络流量,使用 5 元组信息(源、源端口、目标、目标端口和协议)来允许或拒绝流量。在这种情况下,无论您是通过 ALB 还是单独的公共 IP 地址访问后端虚拟机。对于每个入站规则,您都有相同的端口、目标和协议。