单个VM上多个SSL的Azure VIP

  • 本文关键字:Azure VIP SSL VM 单个 azure
  • 更新时间 :
  • 英文 :


我有一个带有两个网站的Azure VM(虚拟机)。每个网站都有自己的SSL证书

但是,VM只有一个内部IP地址,因此它不起作用。

我要做的是添加第二个VIP(虚拟IP),并将其映射到其他端口。这样的东西:

VIP 1.1.1.1.1.1:80点为192.168.1.1.1:8081

VIP 2.2.2.2:80点为192.168.1.1.1:8082

VIP 3.3.3.3:443点指192.168.1.1.1:8444

VIP 4.4.4.4:443点指192.168.1.1.1:8445

我认为这应该有效,但是,我遇到了很多配置Azure的麻烦。由于某种原因,没有Web界面可以定义这些内容,而我根本没有通过任何建议的方法进行操作。

有人可以帮我吗?

  1. 我的解决方案应该工作吗?

  2. 我该怎么做?

我找到了这篇文章:https://azure.microsoft.com/en-us/documentation/articles/load-balancer-multivip/

使用Microsoft Azure PowerShell,尝试添加/列出VIP,我获得了get-azuredeployment:resourcenotfound:找不到部署。

我管理,它有效,我很高兴。我感谢高级程序员Azure Siva Edupuganti为我提供了帮助。

那么,我该怎么做才能使它起作用?

简短的答案是,您可以在单个负载平衡器上设置多个前端IP地址配置。每个前端IP地址配置都有一个IP地址。通过UI您无法执行此操作。

长答案是完成此操作的最终配置:

  1. 我的网站仍然可以在我的标准端口上提供:80&443。
  2. 我添加了5个新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个FrontendPool地址,所以我创建了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打开一些端口和其他设置:

  1. 网络安全组允许端口 *到端口8081-8085和4431-4435

  2. 网络安全组允许从Azureloadbalancer到端口8081-8085

  3. 在端口8081-8085和4431-4435

  4. 上打开Windows防火墙

现在:通过UI配置负载平衡器:添加到后端池与Web Server/Pool相关联。

并准备探针&连接到UI中的负载平衡规则(也将无需使用)

lb-probe-tcp-8081

lb-probe-tcp-8082

lb-probe-tcp-8083

lb-probe-tcp-8084

lb-probe-tcp-8085

现在都应该工作。6 IP,其中5通过负载平衡器。以及与IIS同一虚拟服务器上并排运行的最多6个不同的SSL证书。

最新更新