讨论 技术讨论 Apache和Nginx分别怎么配置gzip,为什么可以对文本格式大幅度压缩

Apache和Nginx分别怎么配置gzip,为什么可以对文本格式大幅度压缩

ModStart 发表于    阅读:460    回复:0

gzip介绍

gzip是一种常见的文件压缩算法,它通过在文件中找出重复的数据块,并使用更短的代表符号来表示这些重复的数据块,从而实现文件的压缩。在对SVG文件进行压缩时,gzip算法会将文件中的各种标签、属性、值等内容进行分析和压缩,去除空格和注释,将重复的数据块替换为更短的符号,从而大幅度减少SVG文件的大小。

一般情况下,SVG文件中包含大量的文本信息、颜色定义、字体信息等内容,通过gzip算法进行压缩可以使文件的体积减小70%左右,大大提高SVG文件在网络传输中的效率,降低用户等待时间,提升用户体验。

Apache配置

1. 打开Apache的配置文件(通常是/etc/httpd/conf/httpd.conf)。

2. 找到并启用mod\_deflate模块。在配置文件中找到以下行(可能在注释块中),去掉行首的#符号:

LoadModule deflate_module modules/mod_deflate.so

3. 在配置文件的VirtualHost块中添加以下配置,启用gzip压缩:

<IfModule mod_deflate.c>
    SetOutputFilter DEFLATE
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico)$ no-gzip
    SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|gz2|sit|rar)$ no-gzip
    SetEnvIfNoCase Request_URI \.(?:pdf|doc)$ no-gzip
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
    Header append Vary User-Agent env=!dont-vary
</IfModule>

以上配置指定了不对gif、jpg、png、ico、exe、t?gz、zip、gz2、sit、rar、pdf和doc文件进行gzip压缩,只对HTML文件进行压缩。

4. 配置完成后,保存文件并重启Apache服务。

Nginx配置

1. 打开Nginx的配置文件(通常是/etc/nginx/nginx.conf)。

2. 在http块中添加以下配置,启用gzip压缩:

http {
    gzip on;
    gzip_disable "msie6";
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}


以上配置指定了只对文本、CSS、JSON、XML和JavaScript文件进行gzip压缩。

3. 配置完成后,保存文件并重启Nginx服务。

需要注意的是,Gzip压缩会增加服务器CPU的负担,建议根据实际情况调整配置参数。


我来评论
QQ
微信
客服