ProxyPassReverseCookieDomain相当于为IIS(ProxyPassRever

2019-10-30 07:12发布

我使用IIS和URL重写作为反向代理。 我实际的web应用托管这是不是连接到Internet直接访问的服务器上。

在重写规则我更换了与本地IP地址反向代理的主机名。 这工作得很好。

但是,我使用的应用程序提供下载。 一旦客户端发出下载请求的服务器端程序重定向到实际的下载文件。

这是我的问题。 这似乎是会话cookie(JSESSIONID)是不正确的反向代理服务器和本地服务器之间共享。 而不是被重定向到下载文件,我从本地服务器401“未授权”的消息。

我发现了一个类似的问题在这里。 后面反向代理如何正确设置JSESSIONID cookie路径的用户使用Apache作为反向代理并使用ProxyPassReverseCookieDomain改写Cookie域名。

有没有在IIS中类似的设置? 我尝试了以下outbounding规则,但这不起作用。

<preCondition name="contains-domain-set-cookie-header">
  <add input="{RESPONSE_Set_Cookie}" pattern=".*?domain=MYDOMAIN*?" />
</preCondition>
<rule name="rewrite cookie domain" preCondition="contains-domain-cookie-header">
  <match serverVariable="RESPONSE_Set_Cookie" pattern="^(.*?domain=)MYDOMAIN(.*?)$" negate="false" />
  <action type="Rewrite" value="{R:1}MYLOCALIP{R:2}" /> 
</rule>

是否有其他方式来处理呢?

谢谢,

托马斯

Answer 1:

找到答案在这里和这里

为了保持主机头从命令行运行此更新机/ Webroot公司/ APPHOST配置

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/proxy -preserveHostHeader:true /commit:apphost


文章来源: ProxyPassReverseCookieDomain equivalent for IIS