我有一个包含两个网站的Azure VM(虚拟机)。 每个网站都有自己的SSL证书
但是,VM只有一个内部IP地址,因此无效。
我想要做的是添加第二个VIP(虚拟IP),并将其映射到不同的端口。 所以像这样:
VIP 1.1.1.1:80指向192.168.1.1:8081
VIP 2.2.2.2:80指向192.168.1.1:8082
VIP 3.3.3.3:443指向192.168.1.1:8444
VIP 4.4.4.4:443指向192.168.1.1:8445
我认为这应该可行,但是,我在配置Azure时遇到了很多麻烦。由于某种原因,没有用于定义这些内容的Web界面,我只是没有通过任何建议的方法来管理。
有人可以帮助我吗?
我的解决方案应该有效吗?
我该怎么做?
我找到了这篇文章: https://azure.microsoft.com/en-us/documentation/articles/load-balancer-multivip/
使用Microsoft Azure PowerShell,尝试添加/列出VIP,我得到Get-AzureDeployment:ResourceNotFound:未找到任何部署。
答案 0 :(得分:1)
我管理,它有效,我很高兴。 我要感谢高级程序员Azure的Siva Edupuganti,他为我提供了帮助。
那么,我怎么做才能让它发挥作用?
简短的回答是使用azure powershell脚本您可以在单个负载均衡器上设置多个前端IP地址配置。每个前端IP地址配置都有一个IP地址。通过用户界面,您无法执行此操作。
长答案是完成此任务的最终配置:
此新公共虚拟IP上的每个传入请求都将由负载均衡器映射到内部IP,并带有
不同的端口。我会为此使用负载平衡规则。因此传入将始终位于标准端口80和443上,
但IIS将在端口81和4431上接收。
vip-81 80 => 81,443 => 4431
vip-82 80 => 82,443 => 4432
vip-83 80 => 83,443 => 4433
vip-84 80 => 84,443 => 4434
vip-85 80 => 85,443 => 4435
首先通过Azure UI准备IP。 最多有5个前端地址,所以我创建了5个。
VIP-81
VIP-82
VIP-83
VIP-84
vip-85
#scripting part:
#Now login with Azure Powershell:
Login-AzureRmAccount
#You can run this scripts line by line or all together:
$publicIP1 = Get-AzureRmPublicIpAddress -name vip-81 -resourcegroupname MyRG
$publicIP2 = Get-AzureRmPublicIpAddress -name vip-82 -resourcegroupname MyRG
$publicIP3 = Get-AzureRmPublicIpAddress -name vip-83 -resourcegroupname MyRG
$publicIP4 = Get-AzureRmPublicIpAddress -name vip-84 -resourcegroupname MyRG
$publicIP5 = Get-AzureRmPublicIpAddress -name vip-85 -resourcegroupname MyRG
$frontendIP1 = New-AzureRmLoadBalancerFrontendIpConfig -Name lb-feipc-1 -PublicIpAddress $publicIP1
$frontendIP2 = New-AzureRmLoadBalancerFrontendIpConfig -Name lb-feipc-2 -PublicIpAddress $publicIP2
$frontendIP3 = New-AzureRmLoadBalancerFrontendIpConfig -Name lb-feipc-3 -PublicIpAddress $publicIP3
$frontendIP4 = New-AzureRmLoadBalancerFrontendIpConfig -Name lb-feipc-4 -PublicIpAddress $publicIP4
$frontendIP5 = New-AzureRmLoadBalancerFrontendIpConfig -Name lb-feipc-5 -PublicIpAddress $publicIP5
$beaddresspool = New-AzureRmLoadBalancerBackendAddressPoolConfig -Name lb-beapc-grp1
$lbrule1 = New-AzureRmLoadBalancerRuleConfig -Name lb-rule-tcp-80-8081 -FrontendIpConfiguration $frontendIP1 -
BackendAddressPool $beAddressPool -Protocol Tcp -FrontendPort 80 -BackendPort 8081
$lbrule2 = New-AzureRmLoadBalancerRuleConfig -Name lb-rule-tcp-80-8082 -FrontendIpConfiguration $frontendIP2 -
BackendAddressPool $beAddressPool -Protocol Tcp -FrontendPort 80 -BackendPort 8082
$lbrule3 = New-AzureRmLoadBalancerRuleConfig -Name lb-rule-tcp-80-8083 -FrontendIpConfiguration $frontendIP3 -
BackendAddressPool $beAddressPool -Protocol Tcp -FrontendPort 80 -BackendPort 8083
$lbrule4 = New-AzureRmLoadBalancerRuleConfig -Name lb-rule-tcp-80-8084 -FrontendIpConfiguration $frontendIP4 -
BackendAddressPool $beAddressPool -Protocol Tcp -FrontendPort 80 -BackendPort 8084
$lbrule5 = New-AzureRmLoadBalancerRuleConfig -Name lb-rule-tcp-80-8085 -FrontendIpConfiguration $frontendIP5 -
BackendAddressPool $beAddressPool -Protocol Tcp -FrontendPort 80 -BackendPort 8085
$lbrule6 = New-AzureRmLoadBalancerRuleConfig -Name lb-rule-tcp-443-4431 -FrontendIpConfiguration $frontendIP1 -
BackendAddressPool $beAddressPool -Protocol Tcp -FrontendPort 443 -BackendPort 4431
$lbrule7 = New-AzureRmLoadBalancerRuleConfig -Name lb-rule-tcp-443-4432 -FrontendIpConfiguration $frontendIP2 -
BackendAddressPool $beAddressPool -Protocol Tcp -FrontendPort 443 -BackendPort 4432
$lbrule8 = New-AzureRmLoadBalancerRuleConfig -Name lb-rule-tcp-443-4433 -FrontendIpConfiguration $frontendIP3 -
BackendAddressPool $beAddressPool -Protocol Tcp -FrontendPort 443 -BackendPort 4433
$lbrule9 = New-AzureRmLoadBalancerRuleConfig -Name lb-rule-tcp-443-4434 -FrontendIpConfiguration $frontendIP4 -
BackendAddressPool $beAddressPool -Protocol Tcp -FrontendPort 443 -BackendPort 4434
$lbrule10 = New-AzureRmLoadBalancerRuleConfig -Name lb-rule-tcp-443-4435 -FrontendIpConfiguration $frontendIP5 -
BackendAddressPool $beAddressPool -Protocol Tcp -FrontendPort 443 -BackendPort 4435
$NRPLB = New-AzureRmLoadBalancer -ResourceGroupName MyRG -Name lb-grp1 -Location 'Central US' -
FrontendIpConfiguration $frontendIP1,$frontendIP2,$frontendIP3,$frontendIP4,$frontendIP5 -LoadBalancingRule $lbrule1,
$lbrule2,$lbrule3,$lbrule4,$lbrule5,$lbrule6,$lbrule7,$lbrule8,$lbrule9,$lbrule10 -BackendAddressPool $beAddressPool
#end script part. Go to the UI.
现在,负载均衡器设置了10个端口映射规则。
现在通过UI打开几个端口和其他设置:
网络安全组允许端口*到端口8081-8085和4431-4435
网络安全组允许任何来自AzureLoadBalancer的端口8081-8085
在端口8081-8085和4431-4435上打开Windows防火墙
现在: 通过UI配置负载均衡器:添加到与Web服务器/池关联的后端池。
准备探针&连接到UI中的负载平衡规则(将无法正常工作)
LB-探针-TCP-8081
LB-探针-TCP-8082
LB-探针-TCP-8083
LB-探针-TCP-8084
LB-探针-TCP-8085
现在它应该全部工作了。 6个IP,其中5个通过负载均衡器。最多6个不同的SSL证书在IIS的同一虚拟服务器上并行运行。