日期:2014-05-17  浏览次数:20872 次

NET网站,IIS负载均衡后的问题?
各位大虾好,小弟有些问题不是很明白,想请教一下,NET写好的网站,部署到IIS为了解决网站压力,想做负载均衡。
假设两台IIS服务器:A,B,文件服务器C,做了负载后,有如下问题:
1.上传文件的时候,可能传到A,或B服务器,网上的解决方案,有文件共享(IIS-主目录-另一台计算机C上的共享)、第三方同步软件等。
2.Session在访问过程中可能会丢,如果先访问A,后又转到B服务器上,Session就没有了(这个网上可能有解决的办法)。

针对问题1,做过测试(按照网上说的,两台服务器A,C或B,C(IIS服务器和文件服务器)都设置一个相同的用户,在网站里建立虚拟目录,指定到别一台文件服务器C上),确实可以访问另一台的共享目录,上传或下载文件,这样就能保证A,B访问到的都是C上文件,达到同步效果。

由此想到,提问:是否可以将,整个网站文件全部放到文件服务器C,在A,B上建立网站,用(主目录-另一台计算机上的共享)这个方法,连到文件服务,这样,就不需更新A,B服务器的文件,只管C就可以了,

暂时,有这个疑问,(这种假设的测试我也做过,确实能访问,而且是确认是访问的C服务器的文件)。

哪位大虾能 帮我分析一下,要怎么才好呢。我假设的这种做法,有什么不对么?谢谢。

------解决方案--------------------
Session丢失的问题,目前的做法就是通过NBL来配置sing affinity 来保证某一个用户的请求都会发送到同一个服务器中,或者就是在ASP.net的站点中,直接配置Session的保存方式为out of processing,这样您可以将所有的Session保存在一台单独的服务器中或是放在SQL数据库中。保存在数据库中的好处就是当服务器遇到问题,重起之后,依旧可以保证Session的值能够继续存在。