如果需要对一个云服务下的不同虚拟机实现负载均衡,可以将Public Port的消息通过负载均衡转发到每个VM,从而实现请求的自动负载均衡。

具体拓扑如下:

clip_p_w_picpath001

我们可以对之前创建的这两台虚拟机,设置80端口的负载均衡。

clip_p_w_picpath002

注意:Azure的负载均衡目前只支持四层,不能保留Session。

负载均衡的算法是Azure设置好的,不能修改。算法主要依赖于五元组(source IP, source port, destination IP, destination port, protocol type)。

 

Azure虚拟机在默认情况下,只开启了RDP的端口和PowerShell的端口,其他的端口都是关闭的。

 

我们为了测试,安装并开启2台虚拟机的web服务,并添加80端口的终结点。

clip_p_w_picpath003

安装web服务,第二台截图略

clip_p_w_picpath004

测试第一台WEB服务,正常!

clip_p_w_picpath005

第二台web服务器。

(注意:为了区分效果,2台web网页内容设置为不一样,实际情况下应该相同)

 

首先在第一台虚拟机上添加终结点,并创建负载均衡群集

clip_p_w_picpath006

点击“添加”

clip_p_w_picpath007

添加独立终结点

clip_p_w_picpath008

指定终结点名称“HTTP”,协议TCP,公用端口80,私有端口80,勾选“创建负载平衡群集”

clip_p_w_picpath009

设置负载平衡群集名称NLB-HTTP,探测协议TCP,探测端口及间隔,保持默认

clip_p_w_picpath010

第一台虚拟机终结点创建完成,

 

切换到第二台虚拟机

clip_p_w_picpath011

终结点页面

clip_p_w_picpath012

添加

clip_p_w_picpath013

选择将终结点添加到负载平衡群集“NLB-HTTP”

clip_p_w_picpath014

设置终结点名称HTTP,其余默认

clip_p_w_picpath015

第2台虚拟机终结点添加完成。

 

下面开始测试

找一台本地计算机,我们使用2个浏览器chrome和IE,模拟2个用户访问,效果如下:

IE

clip_p_w_picpath016

chrome

clip_p_w_picpath017

测试完成。

Azure Load Balancer(负载均衡器)的规则,是由五要素组成source IP, source port, destination IP, destination port, protocol type

参考资料:http://azure.microsoft.com/blog/2014/04/08/microsoft-azure-load-balancing-services/

clip_p_w_picpath018

最新的Azure Load Balancer可以将规则进行修改,改为2要素,(Source IP,Destination IP)或3要素(Source IP, Destination IP, Protocol)。这样由同一个客户端发起的请求,会指向同一个Azure目标服务器。通过这种方式,就可以保留Session。如下图所示:

clip_p_w_picpath019