我使用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>
是否有其他方式来处理呢?
谢谢,
托马斯