目前,我有两个 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 地址和端口浏览这些网站。