如何在 Azure 上进行负载均衡/端口转发?

How to do load balancing / port forwarding on Azure?

我正在评估迁移到 Azure 的便利性。目前,我正在尝试弄清楚如何平衡负载并为同一台机器上的不同网站进行路由。我看到教程中用户在不同的 VM 上创建了一个单独的 LB。我还发现了很多关于使用 Azure 负载平衡.

来平衡负载的可能性的文章

所以我假设两者都是可能的,对吗?

我想知道如何在 azure 上连接机器。是否可以使用本地 ip、机器名或 dns 来这样做?

我还需要弄清楚如何基于 http header 将流量转发到不同的端口,如果没有单独的机器作为负载平衡器,这是否可行?我在我的 azure 仪表板中看到了端点配置并找到了官方文档,但不幸的是我的理解还不够。

根据您的部署方式,有几个选项:

  • 首先:LB 设置在云服务中的 VM 中。为此,云服务充当 LB。这只能在使用标准 sku VM 时实现。
  • 第二个在 Azure WebApps 中:负载平衡是在通过标准方式部署时自动实现的,因为这里预见到了缩放。
  • 第三种是具有角色的云服务,他们也执行此操作 "automagically"。

现在 none 似乎可以满足您的需求。你也可以开始考虑使用流量管理器,有点多一点:-)

你有没有看过这篇文章? http://azure.microsoft.com/en-us/documentation/articles/virtual-machines-load-balance/

我想建议您将不同的端点添加到您的 VM 与流量管理器的工作中,并确保您的 IIS 在正确的端口上拥有所有 headers(因为我假设这就是您的)已经在做)

Currently, I am trying to figure out how to balance the load and make routing for different websites on the same machine.

通过在 IIS 上配置虚拟主机,您可以在同一台机器上拥有不同的网站。这是使用主机 header 完成的。 VM、云服务甚至网站都支持此功能。虚拟机和云服务应该非常简单。使用网站的示例:

在一个 Azure 网站下托管多个域

http://blogs.msdn.com/b/cschotte/archive/2013/05/30/hosting-multiple-domains-under-one-azure.aspx

I also found many articles about the possibility to balance the load using Azure load balancing.

VM 的 LB 就像在端点配置向导中创建负载平衡集一样简单。创建平衡集后,例如,启用 HTTP 端口 80,您可以将此平衡集分配给同一云服务上的任何 VM。对端口 80 的所有请求将在集合中的所有 VM 之间自动平衡。

So I assume both are possible, is that correct?

是的。

I would like to know how to connect between machines on azure. Would it be possible to do so using a local ip, machinename, or dns?

您只需创建一个虚拟网络并将 VM 部署到其中。网站(仅通过预览门户)、云服务和 VM 支持 VNet。

虚拟网络概述

https://msdn.microsoft.com/library/azure/jj156007.aspx/

I also need to figure out how to forward traffic to different ports based on http header, is that possible without a seperate machine as load balancer?

暂时没有。原生 Azure 服务所能提供的最好的是三元组(源 IP、目标 IP、协议)负载平衡配置。

Azure 负载均衡器新分布模式

http://azure.microsoft.com/blog/2014/10/30/azure-load-balancer-new-distribution-mode/