web gzip 站 一、什是gzip PS:情考:http://baike.baidu.com/item/gzip?fr=aladdin deflate利用inflateInit(),而gzip利用inflateInit2()行初始化,比inflateInit()多一: -MAX_WBITS,示意置raw deflate。因gzip中的zlib有zlib header的字。利用inflateInit2要求zlib疏忽zlib header。在zlib手中要求windowBits8..15,然上其它局限的有非凡作用,zlib.h中的,如示意raw deflate。 它最初是由Phil Katz他的PKZIP工具第二版所界的,後界在RFC 1951中。 
安它的Apache Web事器版本的差。Apache 1.x系列有建手,所以才去用外的第三方mod_gzip 模履行。而Apache 2.x官方在的刻,就把斟酌去,建了mod_deflate 模,用以代替mod_gzip。固然者都是利用的Gzip算法,它的作道理是似的。 gzip是一格式,默且今朝利用deflate算法data部; 利用Apache中的Gzip模,我可使用Gzip算法Apache服器布的容行後再到客端器。如由後上下降了收集的字,最明的益就是可以加速加的速度。 加速度加快的不可知,除省流量,改良用的外,另外一伏的益是Gzip搜索引擎的抓取象有著更好的。例如Google就能由程直接取gzip文件比通俗手工抓取更快地索。在Google站理工具(Google Webmaster Tools)中你可以看到,sitemap.xml.gz 是直接作Sitemap被提交的。 事器本的用。一般mod_gzip事器CPU的用要高一些。mod_deflate是保服器的能而利用的一模,mod_deflate需要少的本文件。意味著在高流量的事器,使用mod_deflate可能比mod_gzip加速度更快即在事器能足的情形下,利用mod_gzip,固然花事器能,然值得(更快更好);在事器能不足的情下,利用mod_deflate 保能。 DEFLATE是同利用了LZ77算法哈夫曼(Huffman Coding)的一算法。 3、Apache的http.conf文件,去除mod_deflate.so前面的 2、什是deflate Accept-Encoding: gzip 支mod_gzip Accept-Encoding: deflate 持mod_deflate Accept-Encoding: gzip,deflate 同时持mod_gzip 和mod_deflate 而些其不限於容,PHP面和其他生成的容均可以由程利用Apache模,加上其他的能制和的事器端存法,可以大大提高站的能。是以,於在Linux事器上的PHP法式,在事器支的情下,我建你利用Gzip Web。 Apache上使用Gzip算法行的模有:mod_gzip 和mod_deflate。要使用Gzip Web,起首肯定你的服器了件之一的支。在Linux事器上,如今已有越越多的空商放了它的支,有的乃至是同支模的。例如今朝Godaddy、Bluehost及DreamHosts等空商的事器都已同支持mod_gzip 和mod_deflate。 利用Gzip後: 四、gzipdeflate分 Gzip是一行的文件算法,目前的用十分普遍,特是在Linux平台。用Gzip到一文本文件,果短常著的,大可以削70%以上的文件巨。取於文件中的容。 5、mod_gzip、mod_deflate DEFLATE解的源代可以在自由、通用的zlib上找到。 量。mod_deflate 速度略快而mod_gzip 的比略高。一般默情下,mod_gzip 比mod_deflate 多出4%~6%的量。 deflate 是最基的算法,gzip 在deflate 的raw data 前增添了10 字的gzheader,尾部添加了8 字的校字(可crc32 和adler32) 和度字。 更高率的DEFLATE是7-zip所的。AdvanceCOMP也使用,它可以gzip、PNG、MNG和ZIP文件行而得比zlib更小的文件巨。在Ken Silverman的KZIPPNGOUT中使用了一加倍高效同要求更多用入的DEFLATE法式。 - <IfModule mod_deflate.c>
- AddOutputFilterByType DEFLATE text/html
- &nbp;AddOutputFilterByType DEFLATE text/css
- AddOutputFilterByType DEFLATE text/Javascript
- AddOutputFilterByType DEFLATE text/xml
- AddOutputFilterByType DEFLATE text/plain
- AddOutputFilterByType DEFLATE image/x-icon
- AddOutputFilterByType DEFLATE image/svg+xml
- AddOutputFilterByType DEFLATE application/rss+xml
- AddOutputFilterByType DEFLATE application/Javascript
- AddOutputFilterByType DEFLATE application/x-Javascript
- AddOutputFilterByType DEFLATE application/xml
- AddOutputFilterByType DEFLATE application/xhtml+xml
- AddOutputFilterByType DEFLATE application/x-font
- AddOutputFilterByType DEFLATE application/x-font-truetype
- AddOutputFilterByType DEFLATE application/x-font-ttf
- AddOutputFilterByType DEFLATE application/x-font-otf
- AddOutputFilterByType DEFLATE application/x-font-opentype
- AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
- AddOutputFilterByType DEFLATE font/ttf
- AddOutputFilterByType DEFLATE font/otf
- AddOutputFilterByType DEFLATE font/opentype
-
- # For Olders Browsers Which Can't Handle Compression
- BrowserMatch ^Mozilla/4 gzip-only-text/html
- BrowserMatch ^Mozilla/4\.0[678] no-gzip
- BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
- </IfModule>
代 或是在.htaccess案建立述 - #GZIP压缩模块置<ifmodule mod_deflate.c>
- #启用对特定MIME类型内容的压缩
- SetOutputFilter DEFLATESetEnvIfNoCase Request_URI .(?:gif|jpe?g|png|exe|t?gz|zip|bz2|sit|rar|pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary #设置不对压缩的文件AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-httpd-php application/x-Javascript #设置对压缩的文件</ifmodule>
代 如要增添案期限插足代 - <IfModule mod_expires.c>
- ExpiresActive on
- ExpiresByType image/jpg "access plus 1 month"
- ExpiresByType image/jpeg "access plus 1 month"
- ExpiresByType image/gif "access plus 1 month"
- ExpiresByType image/png "access plus 1 month"
- ExpiresByType text/Javascript "access plus 1 month"
- ExpiresByType application/Javascript "access plus 1 month"
- ExpiresByType text/css "access plus 1 month"
- </IfModule>
代 5、指定的文件置存的生存候,去除mod_headers.so模前面的 Apache置文件路是:/usr/local/apache/conf/httpd.conf 打此文件查找以下行代: - LoadModule deflate_module modules/mod_deflate.so
- LoadModule headers_module modules/mod_headers.so
代 前面有#符即正常的,若是有#符表示被掉了,除前面的#符便可。 在Apache 置文件/usr/local/apache/conf/httpd.conf 的最後添加: - <IfModule deflate_module>
- SetOutputFilter DEFLATE
- SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
- SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
- SetEnvIfNoCase Request_URI .(?:pdf|doc|avi|mov|mp3|rm)$ no-gzip dont-vary
- AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css
- AddOutputFilterByType DEFLATE application/x-Javascript
- </IfModule>
代 解: IfModule deflate_module是判假如deflate_module模加的,履行里面的置。 SetOutputFilter DEFLATE是置出deflate算法。 SetEnvIfNoCase Request_URI是解除一些常的片,影音,文等型的後,不。 AddOutputFilterByType DEFLATE是常的文本型,如html,txt,xml,css,js做置。 6、在根目次中新建.htaccess文件,定制定矩 - #文件缓存时间置
- <FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css)[ DISCUZ_CODE_2 ]quot;>
- Header set Cache-Control "max-age=2592000"
- </FilesMatch>
代 面的文件MIME型可以本身情添加,至於PDF 、片、音文之的些自己都已高度格局,重的感化不大,反而可能因增添CPU的理候及器的著而下降能。所以就需要再由程Gzip。由程以上置後再查看返回的HTTP,出以下信息返回的已。即站程序所置的Gzip已生效。 Content-Encoding: gzip 注:不管利用mod_gzip 仍是mod_deflate,此返回的信息都一。因它都是的gzip式格局。 碰到的和解: 1:apach2 安mod_deflate後restart,直接 load /opt/apache/modules/mod_deflate.so into server: /opt/apache/modules/mod_deflate.so: undefined symbol: deflate 常的痛苦 什ldd mod_deflate.so後再export LIB_LIBRARY_PATH呀,都了N次,google也go了N天 於在google上go出一篇文章,於解,方式以下: vi /usr/local/apache2/bin/apr-config 修改LDFLAGS=" " LDFLAGS="-lz" 然後再apxs -ica mod_deflate.c 就OK了. 2:apach2安mod_deflate後restart,直接 module deflate_moule is built-in and can't be loaded ... 申明模已安,必要再LoadModule deflate_module用它。 只需做<ifmodule mod_deflate.c>配置 考文章 https://my.oschina.net/rasine/blog/343769 |