缓存和压缩最佳实践

时间:2013-03-12 13:16:28

标签: php apache .htaccess gzip mod-deflate

早上好,

我希望优化我的网站上的效果,特别是缓存和压缩设置,因为当我在我的网站上运行Google和Yahoo测试时,我总是在这些项目上排名不好。

我想知道哪种方法可以达到良好的性能。 我想编写一些可重复使用的代码,以便与我的所有网站一起使用,并且每次都稍微自定义。

谷歌搜索,我选择并定制了这两个步骤:

1)将这个PHP块放在每个页面的顶部,为我的所有文件设置长缓存时间,如果服务器接受gzip或deflate压缩,脚本将运行正确的PHP处理程序:

<?php   
header('Accept-Encoding: gzip, deflate');
header('Expires: Tue, 01 Apr 2014 16:00:00 GMT');
header('Cache control: public');
header('Last-Modified: Tue, 12 Mar 2013 12:45:26 GMT'); 
if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) 
{ ob_start("ob_gzhandler"); } 
elseif (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'deflate')) 
{ ob_start("ob_deflatehandler"); } 
else
{ ob_start(); } 
?>

2)在我的cPanel中激活压缩,或者通过.htaccess添加这段代码:     #在此行下方添加您自己的指令

# compress text, HTML, JavaScript, CSS, and XML with gzip if exists
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

# compress text, HTML, JavaScript, CSS, and XML with deflate
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/richtext
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>

# remove browser bugs
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent 

这是最好的方法吗? 哪种方法可以让我获得良好的表现并且可以重复使用?

谢谢,伙计们,

0 个答案:

没有答案