0

嗨我有一台服务器托管一个天蓝色的负载平衡器。有多个服务器实例由平衡器管理。如何从负载均衡器的主机IP获取服务器实例标识。是否有用于获取此信息的默认请求。发送请求时是否需要设置一些默认标题? 我主要想通知负载均衡器将我的请求发送到特定的服务器实例。在请求中指定目标服务器实例Azure负载平衡器

我只有负载均衡器的公共IP,我需要获取所有服务器实例并将我的http请求发送到特定的服务器实例。我可以用只有IP地址做这一切吗?我是新的

+0

你不能用做Azure LB – CtrlDot

+0

@CtrlDot上面哪个不能做。找出运行在主机上的服务器实例ID?或者告诉LB向特定服务器发送请求? – flexxxit

+0

两者。您可以通过Azure门户查询后端服务器,但是无法从LB本身获取该信息。为了路由到特定的服务器,您可能必须与App Gateway混合才能看到它是否具备该特定功能(使用您建议的某种类型的标头) – CtrlDot

回答

0

具有多个服务器实例的负载均衡器,您的意思是您在Azure中创建多个Azure虚拟机和负载均衡器模块吗?如果是的话,我们可以使用PowerShell的获取有关虚拟机的信息,像这样:

Login-AzureRmAccount 
Get-AzureRmPublicIpAddress | ?{ $_.ipaddress -eq "52.168.145.1" } | select name, resourcegroupname 
$pip = Get-AzureRmPublicIpAddress -Name mypublicip -ResourceGroupName lb 
$lbname = ($pip.IpConfiguration.Id -split '/')[8] 
$lbinfo = Get-AzureRmLoadBalancer -Name $lbname -ResourceGroupName lb 
$backendips = $lbinfo.BackendAddressPools.BackendIpConfigurations.id 
$nics = foreach($id in $backendips){($id -split '/')[8]} 
$vms = foreach($nic in $nics){$test = Get-AzureRmNetworkInterface -Name $nic -ResourceGroupName lb ; $vmname =($test.VirtualMachine.id -split '/')[-1];$vmaddress=$test.IpConfigurations.PrivateIpAddress;$results = [pscustomobject]@{'VMname'=$vmname;'PrivateAddress'=$vmaddress};$results } 
$vms 

这里是我的实验室测试:

enter image description here

+0

在这个例子中,我需要登录到Azure帐户吗?如果不登录,我无法实现此目的? – flexxxit

+0

@flexxxit是的,我们应该登录Azure帐户,然后我们可以列出信息。 –