【大型网站架构 原理】3. 网站加速概念
---恢复内容开始---
- Squid反向缓存 - 动静分离
- 静态数据: js,css,flash
- 动态数据
- 分离动态数据和静态数据
- Squid实现动静分离的概念:Squid是一个代理服务器。打个比方:山西的网名想登入sina查看信息,sina的主服务器在北京,在山西有个Squid代理服务器。现在假如山西的第一个用户连接到了Squid代理服务器,然后代理服务器会连接到北京的主服务器,从服务器那获得数据(包括静态数据和动态数据)。当这些数据返回到Squid山西的代理服务器后,Squid会把其中的静态数据存放的Squid池中存放,之后其他山西用户访问sina网站的时候就直接从山西的Squid池中取出静态数据,就无需再向北京的住服务器发送请求,这样可以减轻北京服务器的压力。
Squid代理分为两种:
1. Squid普通代理:我先访问我区域的Squid代理,Squid去主服务器拿资料,然后保存资料到池中,其他人再访问的时候就直接从池中取出内容。
2. Squid反向代理:就是别人到我的公司取数据,Squid取数据后返回给他,现在我就相当于北京sina的主服务器。
动态页面的静态化:
1. Apache Rewrite,利于SEO,但实际上并没有加速。
2. 模板技术,缓存技术,例如Smarty
3. 使用AJAX, 实际上就是局部刷新,并没有起到加速的作用。
Memcache:
优点,将数据放入内存中,存取速度快。
缺点,内存中操作一旦死机会导致内存中的数据丢失,现在nosql是对memcache的一种提升!
Sphinx全文索引:(常在论坛,搜索引擎中结合MySql使用)
在查询速度极快,创建索引的速度快。比Sql中like指令查询速度快的去了。
---恢复内容结束---