Windows Azure Web Site (15) 取消Azure Web Site默认的IIS ARR

时间:2023-03-09 09:18:46
Windows Azure Web Site (15) 取消Azure Web Site默认的IIS ARR

  《Windows Azure Platform 系列文章目录

  我们知道,Azure Web Site (改名为Azure Web App)默认是可以保留Session的。Azure Web App的架构图如下图:

  Windows Azure Web Site (15) 取消Azure Web Site默认的IIS ARR

  上图中,我们可以观察到,Internet请求在发送到Azure Web App之前,会经过Frontend Server,也就是IIS ARR Server。IIS ARR基于Affinity Cookie,可以把请求发送到对应的某一台Azure Web App Server上。通过这种方式实现keep session会话保持。如下图:

  Windows Azure Web Site (15) 取消Azure Web Site默认的IIS ARR

  上图的架构非常好,默认情况下Azure Web App就可以保留Session。比如我们部署在Azure Web App平台上的服务,我们可以通过Chrome按F12工具查看到以下内容:

  Windows Azure Web Site (15) 取消Azure Web Site默认的IIS ARR

  上图的Cookies名称为ARRAffinity

  但是在某些情况下,我们不需要保留Session。比如

  (1)我们部署在Azure Web App上的应用只是页面浏览,不需要保留Session

  (2)我们需要实现绝对负载均衡,不需要保留Session

  这时候可以通过修改Web.config来去除ARRAffinity,如下图:

  Windows Azure Web Site (15) 取消Azure Web Site默认的IIS ARR

  上图中,我们增加了Arr-Disable-Session-Affinity,设置值为true。

  然后重新部署Azure Web App,通过Chrome按F12工具查看到以下内容:

  Windows Azure Web Site (15) 取消Azure Web Site默认的IIS ARR

  我们修改完web.config文件以后,这个站点就不包含任何的Cookie信息了。

  这样就可以实现绝对的负载均衡,当然,也不能保留Session了。