X-Forwarded-用于在IIS上部署的asp.net核心1.1导致502错误

时间:2017-02-17 14:08:16

标签: iis proxy asp.net-core asp.net-core-mvc

我们在Windows 2008 R2服务器上使用IIS7.5托管ASP.NET Core 1.1网站。我们得到了一些错误报告,网站上使用网络代理的用户得到了502。因此,通过设置Squid代理的开箱即用安装,我可以成功地重现他们遇到的问题。

这一天全天都很好:

客户 - > 网络代理 - > IIS - >的

每次 以及“502 - Web服务器在充当网关或代理服务器时收到无效响应”时失败<:

客户 - &gt; 网络代理 - &gt; 负载均衡器 - &gt; IIS - &gt;的

使用Microsoft的Message Analyzer我收到了从负载均衡器和Web代理发送的请求标头。 有效的一个在X-Forwarded-For reqeust标头中只有一个 IP号,而失败的那个有两个

X-Forwarded-For: <Client_IP>X-Forwarded-For: <Client_IP>, <Proxy_IP>

有什么我不懂的吗?我应该做一些神奇的IIS配置,还是IISIntegration中的一个错误?如果我有相同的设置并运行一个普通的旧ASP.NET网站,这可以正常工作。

我找到了一个使用URL重写模块的解决方法,但感觉不对:

<rule name="Clear">
     <match url="(.*)" ignoreCase="true" />
     <serverVariables>
         <set name="HTTP_X_FORWARDED_FOR" value="0.0.0.0" replace="true"/>
     </serverVariables>
     <action type="Rewrite" url="{R:0}" appendQueryString="true" />
</rule>

0 个答案:

没有答案