我有一个运行时间较长的ASP.NET Web应用程序。
我已经将它连接到使用单个服务器配置(IIS)的IBM Cloud Load Balancer了几个星期,并且能够很好地连接到应用程序。
当我在负载均衡器配置中添加第二台(IIS)服务器时,该站点出现“重定向过多”的错误。
我对问题的研究表明,负载均衡器需要传递标头X-Forwarded-Proto,并且我需要向web.config添加重写规则。
<system.webServer>
<rewrite>
<rules>
<rule name="HTTPS rewrite behind ELB rule" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions>
<add input="{HTTP_X_FORWARDED_PROTO}" pattern="^http$" ignoreCase="false" />
</conditions>
<action type="Redirect" redirectType="Found" url="https://{SERVER_NAME}{URL}" />
</rule>
</rules>
</rewrite>
</system.webServer>
我已经获得了IBM的支持-谁像以往一样无济于事。他们只是暗示他们的IBM Cloud Load Balancer不支持X-Forwarded-Proto标头,我每月需要在Netscaler上花费超过1K。
问题1。IBM的回应对我来说听起来并不正确,有人知道吗?
问题2。ASP.NET中是否有编程的方法来解决此问题,即在负载均衡器的前面安装SSL Offload,并且不使用X-Forwarded-Proto标头?
预先感谢
答案 0 :(得分:0)
不幸的是,如果前LB不告诉您原始协议,则无法提供任何支持。 我目前也在使用IBM Cloud,有时这种情况很糟糕。