目录
1、防止网站的资源被盗链,存在于一些大的资源类型的网站, 2
一、判断大型网站的标准
1、pv值(page views)网站浏览量:
概念:一个网站,所有的页面,在一天24小时内,被访问的总量,达到千万级别,或者几百万以上。
2、uv值(unique visitor)独立访客:
概念:一个网站,在一天24小时内,有多少个用户来访问我们的网站。uv值几十万个,
3、独立 ip,
概念:一个网站,在一天24小时内,有多少个独立ip来访问我们的网站。
如果要考虑公司的局域网,uv值略大于独立ip的。
二、大型网站带来哪些问题:
1、高的并发量。
并发量:一个网站的,在同一个时间点(1秒内),有多少个用户正在请求同一个地址的网站。
2、大的流量(带宽)
带宽需求变大。
3、数据存储的问题。
当数据表里面的记录非常大,从容量来说,达到 GT级别,要快速的查找到想要的数据。
三、高并发如何解决:
网站的架构,采用分层设计,使用负载均衡和集群。
四、如何解决大流量
1、防止网站的资源被盗链,存在于一些大的资源类型的网站,
2、减少了http请求,
可以把一些css样式文件和js,一些背景图,合并成一个文件。
3、配置浏览器缓存
把一些更新不是很频繁的资源,比如css,js,图片,缓存到浏览器端,当浏览器请求同一资源时,直接从浏览器缓存里面取出。
(1)缓存原理:以请求图片为例
第一次请求:
第二次请求:
(2)如何配置:
打开httpd.conf,开启expires模块
使用方法:
ExpriesActive on;开启缓存的配置。
ExpiresDefault “<base>[plus]{<num><type>}*”
ExpiresByType type/encoding “<base>[plus]{<num><type>}*”
ExpiresDefault是设置默认的缓存参数。
ExpiresByType是按照文件类型来设计独特的缓存参数。
查看资源的类型:
缓存效果:
注意:
例子:
ExpiresActive On
ExpiresByType image/jpeg “access plus 30 days”
access/now:基于请求响应一瞬间的。
modification:基于文件最后修改日期的。
扩展:
在有些资源不需要缓存,比如我们设置gif文件不缓存。
利用,header模块信息。
步骤:
(1)打开httpd.conf文件,开启header模块。
(2)在虚拟主机里面进行配置。
要针对扩展名为.gif的文件不进行缓存。
<filesMatch “.(gif)$”>
header set cache-control “no-store,must-revalidate”
</filesMatch>
4、配置压缩,减少数据传输量
可以对apache进行配置,常见的压缩格式gzip,deflate,compress压缩以及google chrome正在推的sdch压缩。
查看浏览器支持的压缩格式:
Apache上利用gzip压缩算法进行压缩的模块有两种:mod_gzip和mod_deflate.
Apache 1.x系列没有内建网页压缩技术,使用额外的第三方mod_gzip模块。
Apache2.0以上的版本中gzip压缩使用mod_deflate模块。也就是服务器要采用gzip压缩则开启mod_deflate模块。
步骤:
(1)打开,httpd.conf 文件,开启mod_deflate模块。
(2)配置方式:在虚拟主机下面,添加 如下代码:
<ifmodule mod_deflate.c>
DeflateCompressionLevel 6#压缩级别为6,可选1-9,推荐为6
#配置针对那些文件进行压缩。
AddOutputFilterByType DEFLATE text/plain #压缩文本文件
AddOutputFilterByType DEFLATE text/html #压缩html文件
AddOutputFilterByType DEFLATE text/xml #压缩xml文件
</ifmodule>
注意:为什么要指定文件类型来压缩?
压缩也是要耗费cpu资源的,图片/视频等文件,压缩效果也不好。一般压缩文本格式的文件,不要压缩图片和视频文件。
压缩之前:
配置压缩之后:
最终配置:
<VirtualHost *:80>
DocumentRoot "D:/amp/demo"
ServerName www.demo.com
<Directory "D:/amp/demo">
Options indexes FollowSymLinks
#开启缓存配置,
ExpiresActive on
#针对那些类型的资源进行配置缓存。
ExpiresByType image/jpeg "access plus 30 years"
#针对扩展名为gif的资源设置不缓存
<filesMatch ".(gif)$">
header set cache-control "no-store,must-revalidate"
</filesMatch>
AllowOverride All
Order allow,deny
allow from all
</Directory>
<ifmodule mod_deflate.c>
DeflateCompressionLevel 6#压缩级别为6,可选1-9,推荐为6
AddOutputFilterByType DEFLATE text/plain #压缩文本文件
AddOutputFilterByType DEFLATE text/html #压缩html文件
AddOutputFilterByType DEFLATE text/xml #压缩xml文件
</ifmodule>
</VirtualHost>
DeflateCompressionLevel 指令来设置压缩级别。该指令的值可为1(压缩速度最快,最低的压缩质量)到9(最慢的压缩速度,压缩率最高)之间的整数,其默认值为6(压缩速度和压缩质量较为平衡的值)