影响我的网站速度的因素

测试几个主网页总结出影响我的网页速度的几个因素:

一级因素:

①启动压缩

②浏览器缓存

二级因素:

①提供压缩后的图片

找到原因下面就好办了,对症下药,下面将一个个解决。

解决办法:

  1. 开启压缩功能----gzip技术:文本页面(htm/css/js)启用gzip压缩后,一般可以压缩70%左右.

在 apache2.x 版本以上,需开启Deflate 模块。事实上,Apache2.x系列已经内置了这这个模块,因此,只需要安装时打开即可: 当然当时编译的时候没有打开,现在单独编译这个两个模块:mod_deflate模块

编译mod_deflate模块

1
2
3
4
5
cd /root/httpd-2.2.3/modules/filters
 
/usr/local/apache/bin/apxs -i -a -c mod_deflate.c //编译
 
/usr/local/apache/bin/apachectl restart  //重启apche

查看phpinfo

wps_clip_image-14508

编辑httpd.conf

添加下面这段话:

<ifmodule mod_deflate.c>

AddOutputFilterByType DEFLATE text/html text/plain text/css application/x-httpd-php application/x-javascript

DeflateCompressionLevel 9

SetOutputFilter DEFLATE

#DeflateFilterNote Input instream

#DeflateFilterNote Output outstream

#DeflateFilterNote Ratio ratio

#LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate

#CustomLog logs/deflate_log.log deflate

</ifmodule>

第一句:是支持压缩的文件格式

第二句:是压缩的等级,这里是最高等级

第三句:对所有站点进行压缩

更加详细的学习可以参考apache的官方手册:http://httpd.apache.org/docs/2.0/mod/mod_deflate.html

测试gzip安装是否成功:

下面二个测试网站,可以测试是否使用了gzip

http://www.whatsmyip.org/mod_gzip_test/

http://www.gidnetwork.com/tools/gzip-test.php

 

2.开启浏览器缓存:
  • php header函数-----网页的缓存

  • 这里使用php的header函数实现网页缓存

  

1
**************************************
1
 部分解释:
1
Last-Modified:浏览器第一次访问的标识符,作为以后是否访问过的一个重要标志
1
Etag:关于web资源的一个标识符,如断点下载,作为以后是否访问过的标志
1
Cache-Control:指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。
1
请求时的缓存指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached,
1
响应消息中的指令包括publicprivate、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age。
1
各个消息中的指令含义如下: Public指示响应可被任何缓存区缓存。 Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。
1
这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。 no-cache指示请求或响应消息不能缓存 no-store用于防止重要的信息被无意的发布。
1
在请求消息中发送将使得请求和响应消息都不使用缓存。 max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。
1
min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。 max-stale指示客户机可以接收超出超时期间的响应消息。
1
如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息
1
更加详细的学习可以参考:<a href="http://hi.baidu.com/billdkj/blog/item/ff0ead0003e55f17738b6579.html">http://hi.baidu.com/billdkj/blog/item/ff0ead0003e55f17738b6579.html</a>
1
<span style="color: #ff0000;">注意:这个页面缓存,不要在实时更新的页面或者有iframe页面上设置,否则很容易造成显示不能及时更新!我就在视频播放页面犯错了。</span>
1
 

1
<span style="color: #ff0000;">******设置了一个月的缓存!另外:content_encoding:gzip 说明gzip压缩安装成功</span>
1
 
  • Apache模块mod_expires=======对图像等资源的资源的缓存

  • 由于php的header函数只能缓存网页中的文本,但是图像,css,js资源等不能缓存,这里使用mod_expires模块对图片资源进行缓存

官方对mod_expires的说明;

这个模块控制服务器应答时的Expires头内容和Cache-Control头的max-age指令。有效期(expiration date)可以设置为相对于源文件的最后修改时刻或者客户端的访问时刻。

这些HTTP头向客户端表明了文档的有效性和持久性。如果有缓存,文档就可以从缓存(除已经过期)而不是从服务器读取。接着,客户端考察缓存中的副本,看看是否过期或者失效,以决定是否必须从服务器获得更新,官方手册:http://www.phpchina.com/manual/apache/mod/mod_expires.html

编译mod_expires模块:

Cd  /root/httpd-2.2.3/modules/metadata

/usr/local/apache/bin/apxs -i -a -c mod_expires.c //编译

 

编辑httpd.conf配置:添加下面内容

<IfModule mod_expires.c>

ExpiresActive on

ExpiresDefault "access plus 1 month"

ExpiresByType text/html "access plus 1 months"

ExpiresByType text/css "access plus 1 months"

ExpiresByType image/gif "access plus 1 months"

ExpiresByType image/jpeg "access plus 1 months"

ExpiresByType image/jpg "access plus 1 months"

ExpiresByType image/png "access plus 1 months"

EXpiresByType application/x-shockwave-flash "access plus 1 months"

EXpiresByType application/x-javascript      "access plus 1 months"

#ExpiresByType video/x-flv "access plus 1 months"

</IfModule>

解释:第一句--开启服务

第二句--默认时间是一个月

在下面是关于各种类型的资源的缓存时间设置,视频类的网站视频就不要设置缓存了!application/x-shockwave-flash

是指播放器,video/x-flv视频就不要经常更新了吧!

====================================

另外还有一种基于服务器缓存的使用:mod_cache的缓存方式,这个不仅支持http本地缓存,还支持hhtp代理缓存,

使用方法:

编译mod_cache,mod_mem_cache,mod_disk_cache 模块

Cd /root/httpd-2.2.3/modules/cache

/usr/local/apache/bin/apxs -i -a -c mod_cache.c cache_util.c cache_cache.c cache_storage.c cache_pqueue.c cache_hash.c //编译

/usr/local/apache/bin/apxs -i -a -c mod_mem_cache.c //编译

/usr/local/apache/bin/apxs -i -a -c mod_disk_cache.c //编译

编辑httpd.conf文件

添加:

<IfModule mod_cache.c>  

#内存缓存 

<IfModule mod_mem_cache.c>  

CacheEnable mem /usr/local/apache/htdocs/Mobile/share  

MCacheSize 4096  

MCacheRemovalAlgorithm LRU  

MCacheMaxObjectCount 100  

MCacheMinObjectSize 1  

MCacheMaxObjectSize 2048  

CacheMaxExpire 864000  

CacheDefaultExpire 86400  

#CacheDisable /php  

</IfModule>  

#硬盘缓存

<IfModule mod_disk_cache.c>  

CacheRoot /home/zhangy/cachetest  

#CacheSize 256  

CacheEnable disk /  

CacheDirLevels 4  

#CacheMaxFileSize 64000  

#CacheMinFileSize 1  

#CacheGcDaily 23:59  

CacheDirLength 3  

</IfModule>  

</IfModule>  

/usr/local/apache/bin/apachectl restart  //重启apche

关于参数说明和更多的学习参考:http://blog.51yip.com/apachenginx/898.html

http://apache.jz123.cn/mod/mod_cache.html

看一个成功后的效果图:图片资源设置了一个月的缓存


3.提供压缩后图片

对图片进行缩放处理以及其他效果处理,

这里不使用GD类库,使用ImageMagick来实现图片的压缩等等功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值