Posted by:
努力记

努力记,通过记录,计划,让自己的努力可以触碰彩虹!

4,931

网站服务性能优化

  • 2013-04-20
  • 暂无评论

Yahoo 开发者网站上,Yahoo 提出了优化网站性能的N条规则(Best Practices for Speeding Up Your Web Site),并对这些规则进行了分类

Use a Content Delivery Network----Tag:server

Add an Expires or a Cache-Control Header----Tag:server

Gzip Components----Tag:server

Put Stylesheets at the Top----Tag:css

Put Scripts at the Bottom----Tag:javascript

Avoid CSS Expressions----Tag:css

Make JavaScript and CSS External----Tag:css,javascript

Reduce DNS Lookups----Tag:content

Minify JavaScript and CSS----Tag:css,javascript

Avoid Redirects----Tag:content

Remove Duplicate Scripts----Tag:javascript

Configure ETags----Tag:server

Make Ajax Cacheable----Tag:content

Flush the Buffer Early----Tag:server

Use GET for AJAX Requests----Tag:server

Post-load Components----Tag:content

Preload Components----Tag:content

Reduce the Number of DOM Elements----Tag:content

Split Components Across Domains----Tag:content

Minimize the Number of iframes----Tag:content

No 404s----Tag:content

Minimize DOM Access----Tag:javascript

Develop Smart Event Handlers----Tag:javascript

Avoid Filters----Tag:css

Optimize Images----Tag:images

Optimize CSS Sprites----Tag:images

Don't Scale Images in HTML----Tag:images

Make favicon.ico Small and Cacheable----Tag:images

Keep Components under 25K----Tag:mobile

Pack Components into a Multipart Document----Tag:mobile

Avoid Empty Image src----Tag:server

这些规则中大多数情况会因为项目的本身原因产生较大的修改成本,再对mobile的几个规则因为手机网络的发展已经显得不这么重要了(个人感觉)在此我主要对一些只需修改web server的配置进行说明

Add an Expires or a Cache-Control Header:

Apache

LoadModule expires_module modules/mod_expires.so
ExpiresActive On
ExpiresByType image/gif "access plus 14 days"
ExpiresByType image/jpeg "access plus 14 days"
ExpiresByType image/png "access plus 14 days"
ExpiresByType text/css "access plus 14 days"
ExpiresByType application/x-javascript "access plus 14 days"

Gzip Components:

Apache

LoadModule deflate_module modules/mod_deflate.so
DeflateCompressionLevel 3
# Compress everything except images
<Location />
# 插入过滤器
SetOutputFilter DEFLATE
# Netscape 4.x 有一些问题...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 有更多的问题
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE 会伪装成 Netscape ,但是事实上它没有问题
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# 不压缩图片
SetEnvIfNoCase Request_URI \\.(?:gif|jpe?g|png)$ no-gzip dont-vary
</Location>

Configure ETags:

Apache

FileETag none
LoadModule headers_module modules/mod_headers.so
<FilesMatch "\.(gif|jpg|png)">
Header unset Last-Modified
</FilesMatch>

Expires和ETags需要同时设置,主要是缓存

Expires主要是设置文件的生成周期,避免对同一个文件进行多次的访问,处理图片、css、javascript不错

ETags主要是通过服务器生成一个标识给客户端,下次客户端访问同一个文件会返回这个标识,服务器判断该文件是否被更改如果没有被更改就返回“302”

2个同时使用才能产生最佳效果,减少网络的访问量及服务器的负载

注:Expires需要小心使用避免对服务器的修改不能及时的反映到客户端,如果没有使用Expires则不要关闭ETags功能,这样只会增加服务器负担,单独开启Expires也可以



back up ↑

无觅相关文章插件,快速提升流量