大型网站优化技术详解

一. PV,UV,IP介绍

1.PV

page views页面浏览量,一个网站的所有页面,在24小时内被浏览的总次数,一般说到千万,其实达到百万级已经很少,所以百万浏览量的网站也可以说是大型网站

2.UV

unique visitor独立访客,一个网站在24小时内,有多少个用户来访问该网站,一般来说每天达到10W的已经可以算作是大型网站

3.IP

ip值,在24小时之内达到10W,就可以称得上是大型网站

4.uv和ip的区别

现在很多人上网其实是使用的nat端口转换技术,也就是说,一个小区可能拥有一个外网ip,此时大家访问网站时,对外显示的ip是一样的。在不考虑内网的情况下ip值=uv值,如果考虑,uv值略大于ip值

二.大型网站常遇到的问题

1.大并发

在同一个时间点,有大量的客户访问网站,如果访问量过大,就可能造成网站瘫痪

2.大流量

当网站大了以后,多媒体资源(图片、音频、视频、flash)对流量要求很高,需要更多更大带宽(带宽是非常昂贵的)

3.大存储

网站大了,数据也变得海量,如果将数据放入一个数据表,是无法应对的,可能在数据的保存和查询时都会出现问题,比如查询速度慢,服务宕机,数据丢失等等

三.大型网站的常见处理方案

1.大并发

2.大流量

2.1 将多张图片放在一个图片中

比如网站各种logo和标识,放在一个文件中,然后使用背景图的方式展示出来,节省tcp连接创建和释放所产生的开销

2.2 数据压缩

Apache自带压缩机制:gzip deflate等,可以大量节省数据尺寸

2.3 使用CDN

CDN原理

1)、用户向浏览器提供要访问的域名;

2)、浏览器调用域名解析库对域名进行解析,由于CDN对域名解析过程进行了调整,所以解析函数库一般得到的是该域名对应的CNAME记录,为了得到实际IP地址,浏览器需要再次对获得的CNAME域名进行解析以得到实际的IP地址;在此过程中,使用的全局负载均衡DNS解析,如根据地理位置信息解析对应的IP地址,使得用户能就近访问。

3)、此次解析得到CDN缓存服务器的IP地址,浏览器在得到实际的IP地址以后,向缓存服务器发出访问请求;

4)、缓存服务器根据浏览器提供的要访问的域名,通过Cache内部专用DNS解析得到此域名的实际IP地址,再由缓存服务器向此实际IP地址提交访问请求;

5)、缓存服务器从实际IP地址得得到内容以后,一方面在本地进行保存,以备以后使用,二方面把获取的数据返回给客户端,完成数据服务过程;

6)、客户端得到由缓存服务器返回的数据以后显示出来并完成整个浏览的数据请求过程。

2.4 使用高压缩率的图片格式

在满足需要的情况下,使用jpeg格式图片比png图片更节省资源,所以尽量使用jpeg图片

2.5 买带宽

实在没法了,买带宽吧

3.大存储

3.1 使用缓存技术

3.2 内存缓存

redis,memcached,mysql数据库(memory引擎)

3.3 页面缓存(页面静态化)

(1).概论
静态网站、动态网站
如果一个网站能够根据用户不同,环境不同,提供不同的数据,我们称之为动态网站,一般来说,在当前的网站架构中,如果一个站点使用数据库技术,我们就称之为动态网站。
使用了数据库的网页,称之为动态网页。
页面静态化的含义:将具体的数据存放到网页中
大存储主要瓶颈在数据库的海量数据无法高效管理,如果将数据生成到具体的网页中,不再查询数据库,那么数据库的压力就减轻了
(2).页面静态化
因为很多动态网址,要访问数据库,这样造成访问速度慢,因此可以把动态页面,改成静态页面,从而减少对数据库的访问次数,提速
(3).页面静态化的优缺点
1).优点
提高访问速度
减少数据库服务器压力
防止sql注入
seo友好
2).缺点
文件多(增加了磁盘占用量)
3).什么时候不要使用真静态
1).如果一个页面,变化非常频繁,比如黄金报价,股票报价页面
2).如果一个页面出于安全性考虑,不愿意被SEO, 不要用真静态
3).比如一个页面如果生成静态页后,很少被再次查询,没有必要生成静态页,比如(移动,电信的话费查询)
4).静态网址
一般来说以静态网页文件为后缀名的文件,不带参数,称之为静态网址
http://xxx.cn/index.html,比如: http://www.xxx.com/news-sport-id100.html

特点:

一般不访问数据库,速度快
不接收参数,因此没有没sql注入可能
利于seo(search engine optimization)搜索引擎优化
5).动态网址
比如 http://www.xxx.com/searchNews.php?type=sport&id=100

特点:

一般说访问数据库,速度慢
接收参数 ,有可能被sql注入
不利于seo
6).伪静态网址
在公司中,不太使用动态网址,而是希望使用伪静态网址,或者是静态网址,所以现在公司,可以将动态网址改成静态网址
http://www.xxx.com/news.php?type=music&id=100 ====>http://www.xxxx.com/news-music-id100.html

特点:

对应一个动态页面,因此访问速度没有提升
seo效果好
(4).页面静态化的具体实现
因为很多页面的数据不是频繁变化,没有必要每次查询都走库,可以把这样页面,转换成对应的静态页面,当用户访问时,直接将该静态页面返回即可,这样就大大减少了对数据库的压力,从而提速
从url上可以分

真静态:不查询数据库

伪静态:表面上是一个静态地址,其实还是动态的

从范围上可以分为

全局静态化:全部页面或者页面全部都不使用数据库

局部静态化:ajax

真静态实现方法
使用开发语言自带的缓存技术实现 output buffer
使用模板替换技术实现
伪静态技术
使用真静态和伪静态的建议
1.网页实时性要求高,不要使用真静态化
2.如果网站访问量较小,没有必要使用静态化技术
3.如果某个网页的数据不是经常变化,而且访问频率极大,建议使用真静态,比如新浪新闻频道,公司营销网站
4.如果某网站数据海量( 100 亿),使用真静态会生成海量的 html 静态页面,建议使用伪静态或者分目录来创建静态页面
5.网站安全性要求高,不愿意被seo,或者不希望数据暴露给 spider ,不要使用静态化(网站后台)
6.在一个大型网站中,静态化技术是综合使用的,这个需要大家经验的积累,多做项目

3.4 优化数据库

3.4.1 表的设计要合理(满足3NF)

3.4.2 添加索引(主键索引|全文索引|唯一索引|普通索引|空间索引)

3.4.3 优化sql语句

3.4.4 分表( 水平分表,垂直分表),分区

3.4.5 读写分离

3.4.6 优化my.ini配置

3.4.7 软件硬件应当升级

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值