我对网关和虚拟机的设置有很多疑问,所以这就是我的实际情况。
我有一个Application Gateway和两个VM Ubuntu,一切都在Azure上托管。它们都在同一个虚拟网络上。两个VM只有一个私有IP(10.1.0.4和10.1.0.5),网关有一个私有IP(10.1.1.4)和一个公共IP。因为只有网关有公共IP,我想一切都必须通过它,这就是我想要的。
我努力实现的目标:
在端口1680上创建一个负载均衡器,重定向到1680端口。
要重定向每个VM的SSH以专门连接到一个,因为此时它们没有公共IP。是否可以使用基于路径的规则执行此操作?像www.example.com/VM1一样通过SSH连接到第一个VM?如果不是,可以用什么来区分VM1和VM2的SSH连接?
将网关的端口80重定向到特定VM的端口8080。正如我之前的示例,www.example.com/adminPanelVM1连接到端口80上的第一个VM(重定向到VM上的端口8080)
我已经设法使用HTTP参数,监听器和规则来创建网关端口1680的重定向。
答案 0 :(得分:2)
Azure应用程序网关在HTTP / HTTPS / WebSocket协议上的OSI模型的第7层运行,因为任何其他协议(如SSH)都无法路由。
你有几个选择。
您可以使用网络安全组或NSG对虚拟机进行访问控制。在NSG中,您可以定义允许访问VM的流量来源。
NSG的行为类似于访问控制列表,根据源和目标信息过滤流量,并按优先级顺序评估规则。有关NSG的详细信息,请参阅this页面。
另一种选择是使用负载均衡器。
如果您需要进行端口映射,就像您在问题中描述的那样,那么简单的负载均衡器可能是更好的解决方案。 Azure负载均衡器在OSI模型中的较低级别工作,即第4层(传输层),处理TCP / UDP流量。
因此,如果您使用的是负载均衡器,那么您可以设置NAT规则以将流量转发到特定计算机,换句话说,如果您想这样做:
您可以使用PowerShell执行此操作,如Creating a public load balancer in Resource Manager by using PowerShell文章中所述。
有很多步骤,但它会引导您完成创建NAT规则,NIC和关联虚拟机的整个过程。
这两个服务是明显不同的服务,并试图解决不同的问题,虽然这些问题可能看起来类似:)
Application Gateway的主要用途是:
Azure Load Balancer服务用作TCP / UDP级别并支持例如端口映射。
成本方面,负载均衡器服务是免费的,而应用程序网关每小时计费一次。
关于这个主题有很多很棒的文章,什么时候选择哪个服务。有关更多详细信息,请参阅链接