关于网站的优化

网站优化:
是由于IIS的链接数的是有限的,因此
一、减小HTTP链接
1 尽可能将同一个逻辑的css代码放到一个css文件中
2 尽可能将同一个逻辑的js代码放到一个js文件中
3 尽可能将小图片合并成一个大图,利用css中的backgroud-postinion : x,y去截取大图上的具体的小图 (优化之后性能是最好)
如何将小图拼成大图:
http://www.cnblogs.com/ivanyb/archive/2013/01/10/2854366.html 中有一个工具
只须要将小图片打包成.zip 上传到服务器,自动的生成大图,而且生成大图中的每一个小图的css代码

4 使用 CDN 加速将静态资源全局缓存到CDN服务商的服务器上,未来浏览器请求一个静态资源(图片,.css,.js,.html,.htm),则直接去CDN的服务器获取而不去
web服务器了
CDN的使用:
一、去CDN服务商购买服务
二、CDN就会将服务器上的指定的静态资源下载回去,同时设定缓存时间
三、当缓存失效之后,从新回源
四、也能够提供url进行手工删除
五、CName:给某个域名作一个别名
A记录:将域名www.xx.com绑定到外网ip上 212.198.9.2
cname:将当前域名 s1.xx.cdndomain.com cname到www.xx.com

二、减小每次http请求响应回去的数据量大小
一、尽可能压缩js,css文件的大小 ,因此通常使用的是 .min.js .min.css
可使用
http://www.cnblogs.com/ivanyb/archive/2013/01/10/2854366.html中的说明一步步操做便可完成
二、开启IIS中的压缩功能,默认是zip压缩,浏览器获得之后自动解压缩

上面的2个优化过程不须要修改任何代码。css

三、页面缓存
在aspx页面上 <@ outputcache %>

四、数据缓存
将不常变化的数据缓存到服务器
失效策略:
一、相对过时时间
二、绝对过时时间
三、文件依赖
四、数据库依赖

asp.net中HttpRuntime.cache缓存,此缓存为当前网站的进程内部的

第三方缓存软件:memcached ,redis
本质上是利用key-value进行数据存储的,可使用当前服务器上的全部内存
他们支持分布式缓存 html

五、页面真静态化 .html 能够作CDN缓存
要求:当前页面的变化不大web

六、开启IIS的处理进程 web园
web园:一个网站的应用程序池的工做进程数>1
开启web园引起的问题:
一、多个进程不能共享session对象
如何解决:
一、利用进程外,
一、状态服务器,本质上是是window服务,使用的内存更大,可是当超过了内存数的时候同样的重启,致使不稳定,读写速度很快
二、数据库:本质上是将session数据存储在硬盘上,读写速度慢,可是很稳定(通常使用此种访问,由于系统的健壮性比效率更加剧要)

二、利用cookie + redis(memcached)来模拟session的功能

二、若是系统使用的是HttpRunTime.cache(进程内的缓存) 会引起内存不够用的问题,以及在多个进程中不能共享缓存数据
如何解决:使用 redis(memcached) 在单独的缓存服务器上运行

七、增长web服务器
必须使用LINUX+ NGINX 进行负载均衡
引起什么问题?
一、多个进程不能共享session对象
二、若是系统使用的是HttpRunTime.cache(进程内的缓存) 会引起内存不够用的问题,以及在多个进程中不能共享缓存数据
三、文件上传之后不能在各个服务器上共享
解决方案:使用文件服务器来共享
如何从web服务器将文件保存到文件服务器磁盘:
通常使用FTP ,能够知足大文件的稳定传输
也可使用System.Net.WebClient中的Update() 有参数 (缺点不稳定,随时都会断开)
第一个:路径 (能够是文件服务器的共享路径 格式:\\文件服务器名称\存储文件的文件夹名称)
第二个:保存的数据
断点续传
1K ->Byte[]

断点下载
redis

八、优化数据库
加索引
分表
分库
读写分离
Nosql:Mongodbsql

相关文章
相关标签/搜索