web gzip 站 1、什是gzip mod_deflate 是apache自的模,然是在apache 2後持的,以前1的刻是mod_gzip,用mod_deflate可以很好的流巨,只不外是用服器的本和存.用看到面的速度大大加速。在apache2.0以上(包孕apache2.0)的版中gzip利用的是mod_deflate模 PS:情考:http://baike.baidu.com/item/gzip?fr=aladdin deflategzip解的代近不,可以合成一代。 量。mod_deflate 速度略快而mod_gzip 的比略高。一般默情下,mod_gzip 比mod_deflate 多出4%~6%的量。 deflate利用inflateInit(),而gzip使用inflateInit2()行初始化,比inflateInit()多一: -MAX_WBITS,表示置raw deflate。因gzip中的zlib有zlib header的字。利用inflateInit2要求zlib疏忽zlib header。在zlib手中要求windowBits8..15,但是上其它的有特作用,zlib.h中的,如示意raw deflate。 人遍及DEFLATE不受任何利所,且在LZW(GIF文件格式利用)相的利失效之前,格局除在ZIP文件格局中得利用以外也在gzip文件以及PNG像文件中得了用。 更高率的DEFLATE是7-zip所的。站架AdvanceCOMP也利用,它可以gzip、PNG、MNG和ZIP文件行而得到比zlib更小的文件巨。在Ken Silverman的KZIPPNGOUT中利用了一加倍高效同要求更多用入的DEFLATE程序。 安它的Apache Web事器版本的差。Apache 1.x系列有建技,所以才去用外的第三方mod_gzip 模行。而Apache 2.x官方在辟的候,就把斟酌去,建了mod_deflate 模,用以庖代mod_gzip。固然者都是利用的Gzip算法,它的作道理是近似的。 Apache 2.0.45起,mod_deflate 可以使用DeflateCompressionLevel 指令置。指令的值可1(速度最快,最低的量)至9(最慢的速度,率最高)之的整,其默值6(速度和量均衡的值)。的更是使得mod_deflate 可以媲美mod_gzip 的。 在您的主下建立以下述: 下面是演示: DEFLATE解的源代可以在自由、通用的zlib上找到。 由程查看HTTP,我可以快速判定利用的客端器是不是持接管gzip。若送的HTTP中呈以下信息,解你的器支接管的gzip: Accept-Encoding: gzip 支mod_gzip Accept-Encoding: deflate 支持mod_deflate Accept-Encoding: gzip,deflate 同时支持mod_gzip 和mod_deflate PS:apxs敕令申明: -i此示意需要履行安操作,以安一或多同享像到事器的modules目中。 -a此自增添一LoadModule行到httpd.conf文件中,以激活此模,或,假如此行已存在,用之。 -A-a似,可是它增添的LoadModule饬令有一井前(#),即此模已就但尚未用。 -c此暗示需要履行操作。它起首C源法式(.c)files的目的代文件(.o),然後接些目的代和files中其的目的代文件(.o和.a),以生成同享象dsofile 。如果有指定-o,此出文件名由files中的第一文件名料到得,也就是默mod_name.so 。 未利用Gzip: 而些好不限於容,PHP面和其他生成的容都可以由程利用Apache模,加上其他的性能整制和的服器端存法,可以大大提高站的能。是以,於置在Linux事器上的PHP程序,在服器支的境下,我建你利用Gzip Web。 利用Gzip後: 3、Apache的http.conf文件,去除mod_deflate.so前面的 Apache上利用Gzip算法行的模有:mod_gzip 和mod_deflate。要利用Gzip Web,首先定你的事器了件之一的支持。在Linux事器上,如今已有越越多的空商放了它的持,有的乃至是同支模的。例如目前Godaddy、Bluehost及DreamHosts等空商的服器都已同支持mod_gzip 和mod_deflate。 Apache的deflate可能也有zlib header,需要添加假後置。即MS的毛病deflate (raw deflate).zlib第1字通常0x78, 第2字第一字合起的字能被31整除,rfc1950。例如Firefox的zlib假0x7801,python zlib.compress()效果部0x789c。 哄Apache中的Gzip模,我可使用Gzip算法Apache事器布的容行後再到客端器。由後上下降了收集的字,最明的益就是可以加速加的速度。 DEFLATE是同使用了LZ77算法哈夫曼(Huffman Coding)的一算法。 - <IfModule mod_deflate.c>
- AddOutputFilterByType DEFLATE text/html
- AddOutputFilterByType DEFLATE text/css
- AddOutputFilterByType DEFLATE text/Javascript
- AddOutputFilterByType DEFLATE text/xml
- AddOutputFilterByType DEFLATE text/plain
- AddOutputFilterByType DEFLATE imagex-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_module is built-in and can't be loaded ... 明模已安,必要再LoadModule deflate_module用它。 只需做<ifmodule mod_deflate.c>配置 考文章 https://my.oschina.net/rasine/blog/343769 |