流量变现70%分成 全国楼凤小姐姐 招商联系客服 招商联系客服 招商联系客服 招商联系客服

Windows宝塔面板的Apache、Nginx环境下如何开启Gzip压缩

[复制链接]
查看155 | 回复0 | 2024-10-1 12:02:42 | 显示全部楼层 |阅读模式
本帖最后由 real 于 2024-10-1 12:04 编辑

[color=rgba(58, 58, 58, 0.88)]

什么是Gzip

[color=rgba(58, 58, 58, 0.88)]Gzip是GNUzip的缩写,它是一个GNU自由软件的文件压缩程序。它是Jean-loupGailly和MarkAdler一起开发的。

[color=rgba(58, 58, 58, 0.88)]压缩原理

[color=rgba(58, 58, 58, 0.88)]Gzip压缩背后的原理,是在一个文本文件中找出一些重复出现的字符串、临时替换它们,从而使整个文件变小。

[color=rgba(58, 58, 58, 0.88)]根据这个原理,文件中代码的重复率越高,那幺压缩的效率就越高,使用Gzip的收益也就越大。反之亦然。

[color=rgba(58, 58, 58, 0.88)]Gzip的优点

[color=rgba(58, 58, 58, 0.88)]减少文件大小。gzip压缩比率在3到10倍左右,可以大大节省服务器的网络带宽。

[color=rgba(58, 58, 58, 0.88)]减少文件大小有两个明显的好处:

[color=rgba(58, 58, 58, 0.88)]是可以减少存储空间

[color=rgba(58, 58, 58, 0.88)]是通过网络传输文件时,可以减少传输的时间

[color=rgba(58, 58, 58, 0.88)]对于带宽较低的服务器是一种利好,开启后可以加快我们网站的打开速度,原理是经过服务器压缩,客户端浏览器快速解压的原理,可以大大减少了网站的流量。

[color=rgba(58, 58, 58, 0.88)]Gzip的缺点

[color=rgba(58, 58, 58, 0.88)]开启gzip后会额外的增加很多cpu的开销,会对服务器产生一起压力,同时,客户端解压也需要cpu开销(不过客户端还好),这也是不建议把压缩率设置太高的原因。

[color=rgba(58, 58, 58, 0.88)]对图片的压缩支持不太好,会出现体积变大或图片失真的问题。

如何开启Gzip?

[color=rgba(58, 58, 58, 0.88)]两个先行条件

[color=rgba(58, 58, 58, 0.88)]要开启Gzip,需要先满足两个条件:

[color=rgba(58, 58, 58, 0.88)]服务器支持并开启Gzip压缩服务

[color=rgba(58, 58, 58, 0.88)]目前大多数的服务器都支持Gzip压缩服务,比如NginxIISApache、tomcat等,只不过设置不同而已。

[color=rgba(58, 58, 58, 0.88)]客户端(浏览器)支持Gzip解压服务

[color=rgba(58, 58, 58, 0.88)]目前主流的浏览器都支持Gzip解压服务。

[color=rgba(58, 58, 58, 0.88)]判断是否已开启Gzip服务?

[color=rgba(58, 58, 58, 0.88)]通过查看HTTP请求来判断:

[color=rgba(58, 58, 58, 0.88)]如果服务器开启了Gzip压缩服务,HTTP的响应头就会出现:

  1. Content-Encoding: gzip
复制代码


[color=rgba(58, 58, 58, 0.88)]如果客户端支持Gzip解压服务,HTTP的响应头就会出现:

  1. Accept-Encoding:gzipApache开启Gzip
复制代码

[color=rgba(58, 58, 58, 0.88)]宝塔windows面板apache默认没有开启Gzip压缩的,宝塔windows/linux面板Nginx默认都开启gzip压缩,下面介绍下宝塔windows面板apache开启Gzip压缩方法。

[color=rgba(58, 58, 58, 0.88)]第1步

[color=rgba(58, 58, 58, 0.88)]apache配置文件默认目录:D:\BtSoft\WebSoft\apache\conf

[color=rgba(58, 58, 58, 0.88)]打开httpd.conf,找到如下配置项把前面的#去除

  1. 修改前:
  2. #LoadModule deflate_module modules/mod_deflate.so
  3. #LoadModule filter_module modules/mod_filter.so
  4. #LoadModule headers_module modules/mod_headers.so
  5. 修改后
  6. LoadModule deflate_module modules/mod_deflate.so
  7. LoadModule filter_module modules/mod_filter.so
  8. LoadModule headers_module modules/mod_headers.so
复制代码


[color=rgba(58, 58, 58, 0.88)]第2步

[color=rgba(58, 58, 58, 0.88)]在httpd.conf配置文件最后添加如下配置:

  1. SetOutputFilter DEFLATE
  2. # Don’t compress images and other
  3. SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
  4. SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
  5. SetEnvIfNoCase Request_URI .(?:pdf|doc)$ no-gzip dont-vary
  6. AddOutputFilterByType DEFLATE text/HTML text/plain text/xml text/CSS
  7. AddOutputFilterByType DEFLATE application/x-JavaScript
复制代码

[color=rgba(58, 58, 58, 0.88)]上述操作完后重启apache服务

Nginx开启Gzip
  • [color=rgba(58, 58, 58, 0.88)]登录宝塔面板

  • [color=rgba(58, 58, 58, 0.88)]宝塔面板左侧菜单栏找到软件商店,选择已安装,找到Nginx并进入设置

  • [color=rgba(58, 58, 58, 0.88)]在Nginx性能调整选项里开启“Gzip”压缩,设置好相关参数

    [color=rgba(58, 58, 58, 0.88)]

  • [color=rgba(58, 58, 58, 0.88)]配置属性

    1. gzip on;
    2. on为启用,off为关闭
    3. gzip_min_length 1k;
    4. 设置允许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取。默认值是0,不管页面多大都压缩。建议设置成大于1k的字节数,小于1k可能会越压越大。
    5. gzip_buffers 4 16k;
    6. 获取多少内存用于缓存压缩结果,4 16k表示以16k*4为单位获得,默认 4 8k
    7. gzip_proxied any;
    8. nginx做为反向代理时启用
    9. off(关闭所有代理结果的数据的压缩),
    10. expired(启用压缩,如果header头中包括"Expires"头信息),
    11. no-cache(启用压缩,header头中包含"Cache-Control:no-cache"),
    12. no-store(启用压缩,header头中包含"Cache-Control:no-store"),
    13. private(启用压缩,header头中包含"Cache-Control:private"),
    14. no_last_modefied(启用压缩,header头中不包含"Last-Modified"),
    15. no_etag(启用压缩,如果header头中不包含"Etag"头信息),
    16. auth(启用压缩,如果header头中包含"Authorization"头信息)
    17. gzip_comp_level 3;
    18. 压缩比(1~9),越小压缩效果越差,但是越大处理越慢,所以一般取中间值;
    19. gzip_types text/plain application/x-JavaScript text/CSS text/javascript;
    20. 对特定的MIME类型生效,其中text/HTML被系统强制启用
    21. gzip_http_version 1.1
    22. 识别http协议的版本,早起浏览器可能不支持gzip自解压,用户会看到乱码,默认1.1
    23. gzip_vary on
    24. 启用应答头Vary: Accept-Encoding,一般不需要设置
    25. gzip_disable msie6
    26. (IE5.5和IE6 SP1使用msie6参数来禁止gzip压缩 )指定哪些不需要gzip压缩的浏览器(将和User-Agents进行匹配),依赖于PCRE库
    27. gzip_static on;
    28. nginx 会优先匹配 gzip 文件来返回,如果没有就寻找相应资源进行 gzip 压缩再返回。
    复制代码


[color=rgba(58, 58, 58, 0.88)]

[color=rgba(58, 58, 58, 0.88)]保存设置:在完成相关设置后,点击页面底部的“保存”按钮,保存配置修改。

[color=rgba(58, 58, 58, 0.88)]重启Nginx:在保存设置后,宝塔面板会提示是否需要重启Web服务器,点击“重启”按钮,等待服务器重启完成。

[color=rgba(58, 58, 58, 0.88)]完成以上步骤后,Gzip压缩就成功地在宝塔面板中开启了。此时,网站的属性在传输时会被自动压缩,从而提高了传输效率和速度。需要注意的是,开启Gzip压缩会增加服务器的CPU负载,因此在设置时要根据服务器的实际情况进行调整,避免过度压缩导致服务器性能下降。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则