具有多个网站和主机标头的 Azure 负载均衡器和 IIS

具有多个网站和主机标头的 Azure 负载均衡器和 IIS

目前,我有两个 Web 服务器,每个服务器有四个唯一的网站,绑定了四个唯一的端口和主机头

  • a.blah.com:81

  • b.blah.com:82

  • c.blah.com:83

  • d.blah.com:84

我还有一个 Azure 外部负载均衡器,两个 Web 服务器位于后端池中。当然,负载均衡器有一个公共 IP。

问题是,即使正确设置了 IIS 中的主机头,我仍然无法访问不同的站点。我已确保在 Azure 外部负载均衡器的负载均衡规则中添加了 80 和 443。

当我访问上述各种 URL 时,为什么在配置了主机头的情况下 Azure 负载均衡器没有将我带到 IIS 中的正确网站?

请帮忙!谢谢

答案1

如果您希望所有站点都能在外部工作而不需要输入端口号,那么HTTP://a.bla.com您将需要负载均衡器中的 4 个公共 IP,并且为每个主机名设置指向其各自 IP 的 DNS。

您实际上不需要同时使用主机头和不同的端口,单独使用其中一个就可以正常工作,但是如果您需要带有证书的 HTTPS 网站,那么最好使用单独的端口,所以让我们使用那个:

在负载均衡器中创建 4 个探测器,每个端口一个。

在负载均衡器上创建 4 条 NAT 规则,每个 IP 和端口 80 各一条,然后使用相应的探测器将其映射到相应站点的正确端口。

对于 HTTPS,以类似的方式在每个站点上使用 HTTPS 和正确的证书创建第二个绑定(端口 443、444、445 和 446),然后在 PLB 中在相应的 IP 和端口 443 上创建另外 4 条 NAT 规则,进入每个站点的相应端口。您可以使用相同的 HTTP 探测,无需创建新的探测,因为您只是为每个站点使用单独的绑定,如果 HTTP 可以访问,HTTPS 也应该可以访问。

这样就行了...

答案2

a.blah.com:81
b.blah.com:82
c.blah.com:83
d.blah.com:84

我已确保在 Azure 外部负载均衡器上的负载均衡规则中添加 80 和 443。

根据您的描述,您的网站绑定到不同的端口(81、82、83、84),但只为端口 443 和端口 80 添加负载均衡器规则。在您的场景中,我们应该为端口 81、82、83 和 84 添加负载均衡器规则。

当我点击上面的各种 URL 时。

目前,Azure 负载均衡器不支持为负载均衡器后面的网站设置 DNS,我们可以使用公网 IP 地址和端口浏览这些网站。

相关内容