站架

deflate利用inflateInit(),而gzip利用inflateInit2()行初始化,比inflateInit()多一: -MAX_WBITS,默示置raw deflate。因gzip中的zlib有zlib header的字。利用inflateInit2要求zlib疏忽zlib header。在zlib手中要求windowBits8..15,但是上其它模的有非凡感化,zlib.h中的,如默示raw deflate。
PS:情考:http://baike.baidu.com/item/gzip?fr=aladdin
由程查看HTTP,我可以快速判定利用的客端器是不是支持接管gzip。若送的HTTP中呈以下信息,解你的器支接管的gzip:
deflategzip解的代近相同,可以合成一代。
下面是演示:
Accept-Encoding: gzip 持mod_gzip Accept-Encoding: deflate 支mod_deflate Accept-Encoding: gzip,deflate 同时支mod_gzip 和mod_deflate
2、什是deflate 2.安mod_deflate
找到原有的apache安包安mod_deflate
cd httpd-2.0.59/modules/filters
/usr/local/apache2/bin/apxs -i -c -a mod_deflate.c
Gzip是一流行的文件算法,目下今的用十分普遍,特是在Linux平台。利用Gzip到一文本文件,果短常著的,大可以削70%以上的文件巨。取於文件中的容。
1.查看apache的安模式
apachectl -l
未使用Gzip:
Apache 2.0.45入手下手,mod_deflate 可以使用DeflateCompressionLevel 指令置。指令的值可1(速度最快,最低的量)至9(最慢的速度,率最高)之的整,其默值6(速度和量均衡的值)。的化更是使得mod_deflate 可以媲美mod_gzip 的。
4、gzipdeflate DEFLATE是同利用了LZ77算法哈夫曼(Huffman Coding)的一算法。
Apache上使用Gzip算法行的模有:mod_gzip 和mod_deflate。要利用Gzip Web,起首肯定你的事器了件之一的支持。在Linux服器上,目下今已有愈愈多的空商放了它的支持,有的乃至是同支模的。例如今朝Godaddy、Bluehost及DreamHosts等空商的事器都已同支mod_gzip 和mod_deflate。
3、web事器理http的程 1. Web服器受到器的HTTP求後,查抄器是不是支HTTP(Accept-Encoding 信息);
2. 如果器持HTTP,Web事器查抄要求文件的後名;
3. 假如要求文件是HTML、CSS等文件,Web事器到目次中查抄是不是已存在要求文件的最新文件;
4. 如果要求文件的文件不存在,Web事器向器返回未的要求文件,在目中寄存求文件的文件;
5. 若是要求文件的最新文件已存在,直接返回求文件的文件;
6. 假如要求文件是文件,Web服器容返回器,容不存放到存目中。
Apache的deflate可能也有zlib header,需要添加假後理。即MS的deflate (raw deflate).zlib第1字通常0x78, 第2字第一字合起的字能被31整除,rfc1950。例如Firefox的zlib假0x7801,python zlib.compress()成效部0x789c。
加速度加速的不可知,除省流量,改善用的外,另外一伏的是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 保能。
gzip是一花,默且目前使用deflate算法data部;
利用Gzip後:
人遍及DEFLATE不受任何利所,而且在LZW(GIF文件格式利用)相的利失效之前,花除在ZIP文件花式中得用以外也在gzip文件和PNG像文件中得了利用。
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 。
安它的Apache Web事器版本的差。Apache 1.x系列有建手,所以才去用外的第三方mod_gzip 模履行。而Apache 2.x官方在的候,就把考去,建了mod_deflate 模,用以庖代mod_gzip。固然二者都是利用的Gzip算法,它的作道理是雷同的。
DEFLATE解的源代可以在自由、通用的zlib上找到。
mod_deflate 是apache自的模,固然是在apache 2後支持的,以前1的刻是mod_gzip,用mod_deflate可以很好的流巨,只不外是用事器的本和存.用看到面的速度大大加速。在apache2.0以上(包apache2.0)的版中gzip利用的是mod_deflate模
而些其不限於容,PHP面和其他生成的容均可以由程利用Apache模,加上其他的性能制和的事器端存,可以大大提高站的能。是以,於置在Linux事器上的PHP程序,在事器持的情形下,我建你使用Gzip Web。
量。mod_deflate 速度略快而mod_gzip 的比略高。一般默情形下,mod_gzip 比mod_deflate 多出4%~6%的量。
它最初是由Phil Katz他的PKZIP工具第二版所界的,後界在RFC 1951中。
mod_so.c,ok可以加模,不消新。
更高率的DEFLATE是7-zip所的。AdvanceCOMP也利用,它可以gzip、PNG、MNG和ZIP文件行而得到比zlib更小的文件巨。在Ken Silverman的KZIPPNGOUT中使用了一加倍高效同要求更多用入的DEFLATE法式。
5、mod_gzip、mod_deflate deflate 是最根蒂根基的算法,gzip 在deflate 的raw data 前增加了10 字的gzheader,尾部添加了8 字的校字(可crc32 和adler32) 和度字。
操Apache中的Gzip模,我可使用Gzip算法Apache事器布的容行後再到客端器。如後上下降了的字,最明的益就是可以加快加的速度。
在您的主下立以下述:
3、Apache的http.conf文件,去除mod_deflate.so前面的
web gzip 站 1、什是gzip deflate是一算法,是huffman的一加。 - <IfModule mod_deflate.c>
- AddOutputFilterByType DEFLATE text/html
-
- 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_modue is built-in and can't be loaded ... 申明模已安,必要再LoadModule deflate_module用它。 只需做<ifmodule mod_deflate.c>配置 考文章 https://my.oschina.net/rasine/blog/343769 |
引用自: 文章定位: