关于网站静态文件隔离的解决方案
关于网站静态文件隔离的解决方案
问题:
目前我们网站的物理结构是将服务或应用程序安装到多台服务器上,并将这些服务器配置为共享工作负荷。负载平衡通过将客户端请求分散在多台服务器上,从而提高了基于服务器的程序(如 Web 服务器)的性能。同时引起了一个很严重的问题:用户上传的文件(图片等),要在每台机器上同步.在需要同步的文件很多时,就会严重的影响整个网站的性能.这在社区表现尤为明显.
关键点: 模拟 IIS 验证的帐户或用户
解决方案:
1. 物理结构:
a.程序运行的服务器为server1,server2,server3. 参与负载均衡.
b.静态文件存放的服务器为FileServer, IP为192.168.31.66 不参与负载均衡
2.目录和地址设置
a. FileServer提供共享目录ShareDir,存储静态文件.地址为(\\192.168.31.66\ShareDir)
b. 将ShareDir设置为虚拟目录. url绝对地址为(http://www.e***g.com/img/)
3.用户和权限
在FileServer, server1,server2,server3.建立相同的用户和密码(user: bbs password: sdfsdf)
同时在FileServer上bbs对ShareDir目录拥有读写权限.
4.程序配置
c. 在webconfig中system.web配置节下加入
<identity impersonate ="true" userName="192.168.31.66\bbs" password=" sdfsdf "/>
d. 程序书写(文件操作):
原先: File.saveAs(“d:\ShareDir\**.jpg”)
现在:File.saveAs(“\\192.168.31.66\ShareDir\**.jpg”)
e. 程序书写(图片的显示)
原先(相对地址):
<img src="images/1.jpg " width="5" height="13">
现在(绝对地址):
<img src=" http://www.e***g.com/img/1.jpgf" width="5" height="13">
5.IIS注意
请确保”Allow IIS to Control password” 是被选中的