IIS 安装了 URL rewrite 和 ARR 。然后重写配置文件如下:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://backserver/{R:1}" />
<serverVariables>
<set name="HTTP_UPGRADE" value="{$HTTP_UPGRADE}" />
<set name="HTTP_CONNECTION" value="upgrade" />
<set name="HTTP_HOST" value="{$HTTP_HOST}" />
</serverVariables>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
其实就相当于 nginx 里的
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
然而并不行。
按照 IIS 的官方文档,我这么写似乎没有问题...
但是后端直接打印输出,发现三个参数一个也没修改...
所以...问题出在哪?
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://backserver/{R:1}" />
<serverVariables>
<set name="HTTP_UPGRADE" value="{$HTTP_UPGRADE}" />
<set name="HTTP_CONNECTION" value="upgrade" />
<set name="HTTP_HOST" value="{$HTTP_HOST}" />
</serverVariables>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
其实就相当于 nginx 里的
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
然而并不行。
按照 IIS 的官方文档,我这么写似乎没有问题...
但是后端直接打印输出,发现三个参数一个也没修改...
所以...问题出在哪?

