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帳戶,然後我們可以列出信息。 –