我们在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>