为了账号安全,请及时绑定邮箱和手机立即绑定

负载均衡环境下的web服务器问题

负载均衡设备允许把一台web server轻易扩展成web server集群(前提是所有的web server必须配置完全相同),有访问请求时,该设备会把该请求根据一定的算法,分配给web服务器集群中的某一台服务器,从而大大增加了web server的并发处理能力。

实际应用中,通常把多个web server放在同一机房,相互之间可以用局域网访问。

1.文件同步问题:

多个web服务器上的网站文件必须完全相同,否则有可能造成用户前后二次请求访问的页面内容不同,所以文件同步是必须要考虑的首要问题.

这里介绍几种常用的方法:

a.批处理文件 + 计划任务 :批处理文件利用dos命令完成文件的局域网内复制,然后计划任务里每隔一定时间自动执行bat文件即可。

这种方式适合不经常更新的应用环境,如果要求文件更新必须实时的话,这种方法就不行了.

b.利用现成的文件同步软件:市面上有一些不错的文件同步软件,直接用就行了。(有些功能强的软件支持定时同步和实时同步二种方式)

c.如果想DIY的话,其实利用.Net中的FileWatcher类通过对源站目录中的文件监视就能方便的实现文件同步,而且这种方式很灵活,实时或定时都能实现(完全由开发者自行控制)。

2.Session的处理

默认方式下,Session是InProc模式,即session是存放于网站所在的服务器上,所以多台服务器的session同步也是一个问题。这个asp时代可能比较麻烦,但幸运的是.net从2.0开始,允许session存放于一台特定的服务器甚至某个数据库中,这样的话不管web服务器有多少台,都可以把session集中存放在一台专门的数据库服务器中.

这里以存放于SqlServer为例,大概讲解一下使用步骤:
a.先停止IIS服务,cmd环境下输入net stop w3svc或iisreset /stop即可(这一步貌似可选。


b.打开数据库,运行\WINNT\Microsoft.NET\Framework\(.net版本号)\installSqlState.sql,目的是配置session数据库


c.修改网站的web.config配置,如下:
<sessionState mode="SQLServer" sqlConnectionString="Data Source=服务器IP地址;User ID=***;Password=***;" cookieless="false" timeout="20"/>

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消