【问题标题】:DotNetOpenAuth - How to make it work behind a load balancer?DotNetOpenAuth - 如何使其在负载均衡器后面工作?
【发布时间】:2011-09-22 05:34:30
【问题描述】:

我有一个负载均衡器,后面有一些 Web 服务器。到达负载均衡器的流量由 SSL 保护,从负载均衡器到 Web 服务器的数据作为未加密的 HTTP 流量发送。我在 Web 服务器上的负载平衡器后面使用 DotNetOpenAuth OAuth 服务提供程序。

当我的客户发送请求时,我点击https://www.mydomain.com/OAuth.ashx 但是,一旦到达负载均衡器,协议就会更改为 HTTP,而 HttpContext 的 Request.Url 实际读取的 URL 是http://www.mydomain.com/OAuth.ashx

URL 中的协议正在被修改。有没有人遇到过这个问题,如果有,你是如何解决这个问题的?我唯一能想到的就是获取 DotNetOpenAuth 源,修改代码以强制使用 https URL,然后编译并使用它而不是预打包的程序集。

感谢任何方向。

【问题讨论】:

标签: c# .net url load-balancing dotnetopenauth


【解决方案1】:

如果有人遇到这个问题,这里是问题的答案:

DotNetOpenAuth RP fails behind SSL appliance

我与我的主机交谈并让他们将 X_FORWARDED_PROTO 标头放入每个请求并为其赋予“HTTPS”的值。这解决了我们面临的所有问题。

【讨论】:

  • 我希望他们只将该标头应用于实际以 HTTPS 形式传入的请求。
  • 感谢安德鲁的回复。我们将所有流量的 100% 强制为 HTTPS 到我们的负载均衡器。如果请求以 HTTP 形式传入,它将被重定向到 HTTPS。我们在我们的用户文档中为那些使用我们的 OAuth 服务提供者的人提供了这一点。很高兴您已经在另一篇文章中回答了这个问题,因为我们正在努力解决这个问题。
【解决方案2】:

联系您的网络管理员,他们可能有一个网络组件(例如负载平衡器)卸载 SSL 处理。因此,您可以使用 HTTP 协议,也可以让他们禁用 SSL 卸载,我怀疑他们可能并不想这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    相关资源
    最近更新 更多