首页 > 解决方案 > 使用 SSL 的 IIS ARR 负载平衡配置

问题描述

这是我的设置。我有 4 台服务器

ARR
Node1
Node2
Node3

我已将节点设置为使用共享配置,并将 ARR 框设置为具有中央证书存储(遵循 msdn 上的文档)。根据标准 IIS 安装,在 ARR 框中有一个 DefaultWebsite。它有一个匹配所有 HTTP 流量的绑定(即没有指定域)。还有一个 ARR 规则(默认设置)将所有请求指向我的服务器场。对于正常的 HTTP 流量,一切都运行良好,但是当我尝试 HTTPS 时,请求失败(浏览器提供 ERR_CONNECTION )。我坚持所有的默认设置,并不高兴。我有多个具有多个证书的站点,因此我确保节点上的所有 HTTPS 绑定都设置为使用 SNI 和 CCS。仍然 HTTPS 不起作用。但是,如果我在 ARR 框中添加 HTTPS 绑定,则请求会正确通过。

这种行为肯定不正确吗?我无法管理 ARR 框上的 https 绑定,然后通过共享配置设置管理所有其他绑定?我的印象是,ARR 框甚至不需要配置单个站点,它应该简单地接收请求,匹配 ARR 规则,然后委托给其中一个节点?

我在这里遗漏了什么吗,任何帮助将不胜感激

我认为这可能与 SSL 卸载有关。当我禁用它时,我收到错误 502 响应。

它可能与压缩有关吗?我使用过滤器压缩所有响应,但可以肯定的是,即使是 http 流量也会失败?

标签: iis-8arrserver-farm

解决方案


所以事情总是在早上看起来更好。经过几个小时的谷歌搜索和几次重新安装 IIS,我终于找到了问题所在。我删除了“默认网站”。然后为了恢复 ARR,我添加了一个默认网站。这允许所有通配符 HTTP 流量通过服务器场。但是,当我尝试添加默认 HTTPS 绑定时,IIS 配置管理控制台会强制您输入域名,如果您想要“默认”实现,这将不起作用。

所以为了解决这个问题,我简单地手动编辑了 applicationHost.config 文件并从绑定条目中删除了域名:

<binding protocol="https" bindingInformation="*:443:" sslFlags="3" />

就是这样......幸福!


推荐阅读